https://github.com/voyrox/haskmate
HaskMate is a Haskell-based project monitoring and automation tool designed to continuously watches for changes in your Haskell source files and automatically triggers a rebuild and re-execution of the project whenever a modification is detected.
https://github.com/voyrox/haskmate
Last synced: over 1 year ago
JSON representation
HaskMate is a Haskell-based project monitoring and automation tool designed to continuously watches for changes in your Haskell source files and automatically triggers a rebuild and re-execution of the project whenever a modification is detected.
- Host: GitHub
- URL: https://github.com/voyrox/haskmate
- Owner: Voyrox
- License: cc0-1.0
- Created: 2023-07-16T08:46:57.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-09T00:59:15.000Z (almost 2 years ago)
- Last Synced: 2025-04-11T23:12:30.943Z (over 1 year ago)
- Language: Haskell
- Size: 20.7 MB
- Stars: 30
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# HaskMate: Your Haskell Development Companion

[](https://github.com/Frost-Lord/HaskMate/blob/main/Images/intro.gif)
HaskMate is a Haskell-based project monitoring and automation tool, designed to aid Haskell developers in streamlining their workflow. It continuously watches for changes in your Haskell source files and automatically triggers a rebuild and re-execution of the project whenever a modification is detected.
Crafted for simplicity and efficiency, HaskMate keeps an eye on your file modifications, relieving you from the constant back-and-forth manual building process. It allows developers to focus on what matters the most: writing high-quality Haskell code. With built-in support for smart detection and colorful console outputs, HaskMate is more than just a development tool; it's your mate in Haskell development.
Whether you're prototyping a new function, or debugging a complex piece of logic, HaskMate stands by you, ensuring your changes are instantly built and run, providing immediate feedback on your modifications. It's like having a vigilant companion by your side, dedicated to making your Haskell programming experience smoother and more enjoyable.
Embrace the Haskell way with HaskMate!
## Custom Settings (Optional)
- **Delay**: The time, in microseconds, until the program restarts after a change is made.
- **Ignore**: Specify files to be ignored when changes are detected.
- **Script**: Choose the script to run: `stack`, `ghc`, or `cabal`.
- **Custom Command**: If you prefer a custom command to our preset scripts, enter it here.
```json
{
"delay": 1000000,
"ignore": ["./logs.txt", "./src/loop.hs"],
"script": "stack",
"cmd": "echo hi && stack build" // Optional field for a custom event command
}
```
## Key Features
- **Automatic File Watch**: HaskMate tracks modifications to your Haskell source files in real-time. Once you save a change, it kicks into action.
- **Instant Build and Re-run**: Upon detecting a file modification, HaskMate triggers a rebuild of your project, followed by an execution of the updated build.
- **Smart Detection**: HaskMate employs an efficient change detection mechanism to ensure no unnecessary builds are run.
- **Colored Console Outputs**: Keep track of what's happening through informative, color-coded console outputs.
- **Settings**: Control what files you want to be monitored in the dir and the delay till it re-starts
## Future Plans
- Ability to customize the file watch pattern to include or exclude specific files or directories.
- Integration with popular Haskell test frameworks for automated testing.
## Installation and Usage
1. **Prerequisites:**
- Ensure that you have Haskell and Cabal installed on your system. You can download them from the official Haskell website: [https://www.haskell.org/downloads](https://www.haskell.org/downloads).
2. **Clone the Haskmate Repository:**
- Download the latest version
- Click the Green code button
- Click Download ZIP
3. **Install Haskmate Dependencies:**
- Run the following command to install the required dependencies using Cabal:
```
cabal install --only-dependencies
```
4. **Build Haskmate:**
- Once the dependencies are installed, build Haskmate by running the following command:
```
stack build
```
5. **Install Haskmate:**
- To install Haskmate on your system, execute the install.ps1 in powershell:
```
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser && install.ps1
```
6. **Verify the Installation:**
- After a successful installation, you can check if Haskmate is working by running the following command:
```
haskmate --version
```
- If the installation was successful, it will display the version number of Haskmate.
## Contributing:
We warmly welcome and appreciate contributions from the community. To contribute:
1. Fork the repository.
2. Create a new branch for your feature or bug fix (`git checkout -b feature/YourFeature`).
3. Make your changes.
4. Commit your changes (`git commit -m 'Add some feature'`).
5. Push to the branch (`git push origin feature/YourFeature`).
6. Open a new Pull Request.
Before submitting your Pull Request, please make sure to follow our coding style and conventions. Your contributions make HaskMate better - thank you!