{"id":20338729,"url":"https://github.com/Voyrox/HaskMate","last_synced_at":"2025-05-08T02:31:44.828Z","repository":{"id":181572456,"uuid":"666983987","full_name":"Voyrox/HaskMate","owner":"Voyrox","description":"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.","archived":false,"fork":false,"pushed_at":"2024-08-09T00:59:15.000Z","size":21662,"stargazers_count":30,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T09:28:39.894Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Voyrox.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["Frost-Lord"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"custom":null}},"created_at":"2023-07-16T08:46:57.000Z","updated_at":"2025-03-11T04:44:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"9bee3b6a-6f0c-402d-be63-975dac954a99","html_url":"https://github.com/Voyrox/HaskMate","commit_stats":null,"previous_names":["frost-lord/haskmate","voyrox/haskmate"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voyrox%2FHaskMate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voyrox%2FHaskMate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voyrox%2FHaskMate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voyrox%2FHaskMate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Voyrox","download_url":"https://codeload.github.com/Voyrox/HaskMate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252986836,"owners_count":21836236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T21:14:00.190Z","updated_at":"2025-05-08T02:31:43.793Z","avatar_url":"https://github.com/Voyrox.png","language":"Haskell","funding_links":["https://github.com/sponsors/Frost-Lord"],"categories":[],"sub_categories":[],"readme":"# HaskMate: Your Haskell Development Companion\n\n![HaskMate Preview](./Images/img.png)\n[![Haskmate Video](./Images/intro.gif)](https://github.com/Frost-Lord/HaskMate/blob/main/Images/intro.gif)\n\nHaskMate 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.\n\nCrafted 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.\n\nWhether 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.\n\nEmbrace the Haskell way with HaskMate!\n\n## Custom Settings (Optional)\n\n- **Delay**: The time, in microseconds, until the program restarts after a change is made.\n- **Ignore**: Specify files to be ignored when changes are detected.\n- **Script**: Choose the script to run: `stack`, `ghc`, or `cabal`.\n- **Custom Command**: If you prefer a custom command to our preset scripts, enter it here.\n\n```json\n{\n  \"delay\": 1000000,\n  \"ignore\": [\"./logs.txt\", \"./src/loop.hs\"],\n  \"script\": \"stack\",\n  \"cmd\": \"echo hi \u0026\u0026 stack build\" // Optional field for a custom event command\n}\n```\n\n## Key Features\n\n- **Automatic File Watch**: HaskMate tracks modifications to your Haskell source files in real-time. Once you save a change, it kicks into action.\n- **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.\n- **Smart Detection**: HaskMate employs an efficient change detection mechanism to ensure no unnecessary builds are run.\n- **Colored Console Outputs**: Keep track of what's happening through informative, color-coded console outputs.\n- **Settings**: Control what files you want to be monitored in the dir and the delay till it re-starts\n\n## Future Plans\n\n- Ability to customize the file watch pattern to include or exclude specific files or directories.\n- Integration with popular Haskell test frameworks for automated testing.\n\n\n## Installation and Usage\n\n1. **Prerequisites:**\n   - 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).\n\n2. **Clone the Haskmate Repository:**\n   - Download the latest version \n   - Click the Green code button\n   - Click Download ZIP\n\n3. **Install Haskmate Dependencies:**\n   - Run the following command to install the required dependencies using Cabal:\n     ```\n     cabal install --only-dependencies\n     ```\n\n4. **Build Haskmate:**\n   - Once the dependencies are installed, build Haskmate by running the following command:\n     ```\n     stack build\n     ```\n\n5. **Install Haskmate:**\n   - To install Haskmate on your system, execute the install.ps1 in powershell:\n     ```\n     Set-ExecutionPolicy RemoteSigned -Scope CurrentUser \u0026\u0026 install.ps1\n     ```\n\n6. **Verify the Installation:**\n   - After a successful installation, you can check if Haskmate is working by running the following command:\n     ```\n     haskmate --version\n     ```\n   - If the installation was successful, it will display the version number of Haskmate.\n\n## Contributing:\n\nWe warmly welcome and appreciate contributions from the community. To contribute:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bug fix (`git checkout -b feature/YourFeature`).\n3. Make your changes.\n4. Commit your changes (`git commit -m 'Add some feature'`).\n5. Push to the branch (`git push origin feature/YourFeature`).\n6. Open a new Pull Request.\n\nBefore submitting your Pull Request, please make sure to follow our coding style and conventions. Your contributions make HaskMate better - thank you!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVoyrox%2FHaskMate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVoyrox%2FHaskMate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVoyrox%2FHaskMate/lists"}