Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vaclavsvejcar/headroom
©️ Manager for license headers in source code files.
https://github.com/vaclavsvejcar/headroom
haskell license-management
Last synced: 3 days ago
JSON representation
©️ Manager for license headers in source code files.
- Host: GitHub
- URL: https://github.com/vaclavsvejcar/headroom
- Owner: vaclavsvejcar
- License: bsd-3-clause
- Created: 2019-11-07T19:51:33.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-03T21:00:25.000Z (5 months ago)
- Last Synced: 2025-01-13T14:17:15.849Z (10 days ago)
- Topics: haskell, license-management
- Language: Haskell
- Homepage: https://doc.norcane.com/headroom/latest/
- Size: 15.3 MB
- Stars: 48
- Watchers: 3
- Forks: 3
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
![CI](https://github.com/vaclavsvejcar/headroom/workflows/CI/badge.svg)
[![Hackage version](http://img.shields.io/hackage/v/headroom.svg)](https://hackage.haskell.org/package/headroom)
[![Stackage version](https://www.stackage.org/package/headroom/badge/lts?label=stackage%20LTS)](https://www.stackage.org/package/headroom)Would you like to have nice, up-to-date license/copyright headers in your source code files but hate to manage them manually? Then __Headroom__ is the right tool for you. Define your license header as [Mustache][web:mustache] template, put any template variables into [YAML][wiki:yaml] configuarion file, and you're ready to go!
__Headroom__ also offers much more than just [adding, replacing or dropping][doc:running-headroom] license headers. It can also [update years in copyrights][doc:post-processing] for you, provides [content-aware templates][doc:templates] for some source code file types, and much more!
[![asciicast](https://asciinema.org/a/DkSBMZPHMJvJ4jyDtvT9ehfs8.svg)](https://asciinema.org/a/DkSBMZPHMJvJ4jyDtvT9ehfs8)
## Main Features
- __License Header Management__ - [Add, replace or drop license headers][doc:running-headroom] in your source code files with a single command. What's more, contrary to many similar tools, _Headroom_ allows you to also replace/drop headers that weren't previously generated by _Headroom_, using smart header auto-detection.
- __Powerful Customization__ - Default [configuration][doc:configuration] should cover most use-cases, but if you need to put empty lines before/after generated header, use different comment style of headers, you can customize the configuration to match exactly your needs.
- __Built-in OSS License Headers__ - If you want to use license header for one of the popular OSS licenses, then __Headroom__ can [generate them for you][doc:running-headroom#gen-command] - no need to search for them on web.
- __Automatic Initialization for OSS Projects__ - Setting up external tools like _Headroom_ for your project can be boring. Fortunately, _Headroom_ can [initialize itself][doc:running-headroom#init-command] for your project, by generating configuration file and template files.
- __Content-aware Templates__ - for selected file types, _Headroom_ [exposes additional info][doc:templates] about processed file using template variables, so you can use info like _Java_ package name in your templates.
- __Copyright Year Updater__ - _Headroom_ is good not only for basic license header management, but also for further processing of generated headers. Do you need to [update years in your copyrights][doc:post-processing]? No problem!## Installation
You can get _Headroom_ via one of the following options:
1. download pre-built binary for _GNU/Linux_ or _macOS_ (x64) from [releases page][meta:releases]
1. install using [Homebrew][web:homebrew]: `brew install norcane/tools/headroom`
1. build from source code - see [project microsite][web:headroom] for more details## Adopters
Here is the list of projects using _Headroom_. If you're using _Headroom_ and aren't on the list, feel free to [submit new issue][meta:new-issue] or [pull request][meta:pulls].- [kowainik/hit-on](https://github.com/kowainik/hit-on) - Kowainik Git Workflow Helper Tool
- [kowainik/summoner](https://github.com/kowainik/summoner) - Tool for scaffolding batteries-included production-level Haskell projects
- [wireapp/wire-server](https://github.com/wireapp/wire-server) - Wire back-end services (https://wire.com)## Mentions
- [Bind The Gap magazine, issue #2](https://bindthegap.news/issues/02dec2020.html) has chapter dedicated to _Headroom_ (pages _17-18_).## Documentation
* for end-user documentation, [official project microsite][web:headroom]
* for _Haskell API_ documentation, see [Headroom on Hackage][hackage:headroom]### Running microsite locally
If you need to show microsite documetation for unreleased version of _Headroom_ (e.g. for `master` branch), you can run it locally using [MkDocs][web:mkdocs] tool:```
$ cd doc/microsite/
$ mkdcs serve
```Documentation is then available on http://127.0.0.1:8000.
[i25]: https://github.com/vaclavsvejcar/headroom/issues/25
[hackage:headroom]: https://hackage.haskell.org/package/headroom
[meta:new-issue]: https://github.com/vaclavsvejcar/headroom/issues/new
[meta:pulls]: https://github.com/vaclavsvejcar/headroom/pulls
[meta:releases]: https://github.com/vaclavsvejcar/headroom/releases
[web:headroom]: https://doc.norcane.com/headroom/latest/
[web:homebrew]: https://brew.sh
[doc:configuration]: https://doc.norcane.com/headroom/latest/documentation/configuration/
[doc:templates]: https://doc.norcane.com/headroom/latest/documentation/templates/
[doc:post-processing]: https://doc.norcane.com/headroom/latest/documentation/post-processing/
[doc:running-headroom]: https://doc.norcane.com/headroom/latest/documentation/running-headroom/
[doc:running-headroom#gen-command]: https://doc.norcane.com/headroom/latest/documentation/running-headroom/#gen-command
[doc:running-headroom#init-command]: https://doc.norcane.com/headroom/latest/documentation/running-headroom/#init-command
[web:mkdocs]: https://www.mkdocs.org
[web:mustache]: https://mustache.github.io
[wiki:yaml]: https://en.wikipedia.org/wiki/YAML