HeRM's: a Haskell-based Recipe Manager (yes, food recipes) for the command line.
Table of Contents
- 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)
See the changelog for migration support and more detailed discussion.
- Herm's supports YAML! Recipe files are now stored in YAML format by default (the old format is deprecated, see the changelog). Furthermore, recipes can be imported and exported in JSON and YAML formats.
- Breaking change: Units now have a different internal representation. Recipes written for old versions of Herm's will have to be converted (see #71 to see how the example recipes were changed). More breaking changes are expected as Herm's begins to use YAML as its representation format (see #37).
- Herm's now conforms to the XDG Base Directory
Specification.
In short,
config.hs
andrecipes.herms
are now stored in~/.config/herms
and~/.local/share/herms
respectively on most Linux systems. - Hola! Herm's now has language support for Español (Spanish)! Check out the rest of our supported languages in
our supported languages section. Set your language preferences in
config.hs
! These are but the first languages that Herm's is now capable of supporting. We need your help to translate it into others!
- English
- Español (Spanish)
- Français (French)
- Pirate
- Portuguese
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.
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.
stack update
stack install herms
git clone https://github.com/JackKiefer/herms
cd herms
stack update
stack install
Note: Your mileage may vary with dependency resolution
cabal update
cabal install herms
git clone https://github.com/JackKiefer/herms
cd herms
cabal update
cabal install
See ./nix/README.md.
Herm's has a pretty intuitive interface for users familiar with other command-line programs!
Below is the exhaustive list of all commands and their functionalities. Take a gander!
Usage:
herms list [-g|--group] [--tags TAGS] list recipes
[--name-only ]
herms add add a new recipe (interactively)
herms edit RECIPE_NAME edit a recipe
herms import FILE_NAME import a recipe file
herms export DESTINATION export recipes to DESTINATION
herms remove RECIPE_NAMES remove the particular recipes
herms view RECIPE_NAMES [-s|--serving INT] view the particular recipes
[-t|--step]
[-c|--convert CONV_UNIT]
herms shopping RECIPE_NAMES [-s|--serving INT] generate shopping list for particular recipes
herms datadir show locations of recipe and config files
Available options:
-h|--help Show this help text
-v|--version Show version
RECIPE_NAME index or Recipe name
--sort SORT_ORDER 'tags' to sort by tags
-s|--serving INT specify serving size when viewing.
E.g., 'herms view -s 2 {recipe}' for two servings
-t|--step View recipe in "one-step-at-a-time" mode
(press enter between each direction)
-g|--group group recipes by tags
--tags TAGS show recipes with particular flags
--name-only only list recipes by name
-c|--convert CONV_UNIT view the recipe converted to imperial or metric
E.g., 'herms view 2 -c imperial'
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. Currently supported:"Français"
,"English"
,"Pirate"
In honor of Logan, Utah's greatest Breakfast & Brunch.