Herm's
HeRM's: a Haskell-based Recipe Manager (yes, food recipes) for the command line.
Table of Contents
Features
- Add recipes! :)
- Look at recipes! :D
- Edit recipes! :DD
- Serving size adjustment! :DDD
- Remove recipes :(
- View metric recipes in imperial units and vice-versa
- Import and export recipes as JSON or YAML
- Generate shopping lists
- Keep track of recipes with tags
- Set default unit systems, serving sizes, language, and recipe (see the section on configuration)
What's new:
Version v2.0 is out! This is the first release for which pre-built binaries are available to download on Github. There were many, many great changes in 2.0, so thanks to everyone for the contributions!
See the changelog for more details.
Supported languages
- català
- English
- Español
- français
- Pirate (English)
- português
Contributing
Herms is very actively maintained and welcomes new contributions, whether in code, issues, documentation, translations, or feature suggestions!
Please see Contributing.md for more information.
Installation
At the moment, Herm's can only be installed via stack or cabal, but standalone binaries are in the works!
If you're interested developing/hacking Herm's instead of just using it, see Contributing.md instead.
Via Stack
stack update
stack install herms
Manually cloning and installing from source with Stack
git clone https://github.com/LuxMiranda/herms
cd herms
stack update
stack install
Via Hackage and Cabal
Note: Your mileage may vary with dependency resolution
cabal update
cabal install herms
Manually with Cabal
git clone https://github.com/JackKiefer/herms
cd herms
cabal update
cabal install
Manually with Nix
See ./nix/README.md.
Usage
Command-line interface
Herm's has a command-line interface!
Below is the exhaustive list of all commands and their functionalities. Take a gander!
Usage: herms [-v|--version] COMMAND
HeRM's: a Haskell-based Recipe Manager. Type "herms --help" for options
Available options:
-h,--help Show this help text
-v,--version Show version
Available commands:
list list recipes
view view the particular recipes
add add a new recipe (interactively)
edit edit a recipe
import import a recipe file
export export recipes to stdout
remove remove the particular recipes
shopping generate a shopping list for given recipes
datadir show locations of recipe and config files
find find all matching strings within recipe book
(supports extended regex)
Configuring Herm's and managing recipe files
Herm's stores files in the following locations:
-
The configuration file,
config.hs
in the XDG configuration directory, typically~/.config/herms
on most Linux systems -
The recipes file,
recipes.yaml
in the XDG data directory, typically~/.local/share/herms
on most Linux systems
To see where these are stored on your system, run herms datadir
.
config.hs
is a pseudo-Haskell-source-code file with several options for
configuring the behaviour of Herm's. It currently supports the following
options:
defaultUnit
: The default unit system to show recipes in. Options:Imperial
,Metric
,None
. Setting toNone
will simply show recipes in whatever unit system they're stored in.defaultServingSize
: Default serving size to calculate when showing recipes. Can be any non-negative integer; set to0
for no default. This can be useful when you're always cooking for the same number of people!recipesFile
: The recipes file to use. This option currently supports relative (but not absolute) location, as well; if your data directory is~/herms/data
, for example, and you want a recipe file in your home directory called~/GrandmasHugeCookbook.yaml
, set this option to"../../GrandmasHugeCookbook.yaml"
.language
: Human language to use. See above supported languages.
In honor of Logan, Utah's greatest Breakfast & Brunch.