Skip to content

🍲🍴 A command-line manager for delicious kitchen recipes

License

Notifications You must be signed in to change notification settings

langston-barrett/herms

 
 

Repository files navigation

Herm's

Hackage stackage LTS package Travis build

HeRM's: a Haskell-based Recipe Manager (yes, food recipes) for the command line.

Herm's Interface

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 to None 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 to 0 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.

Herm's Inn

About

🍲🍴 A command-line manager for delicious kitchen recipes

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 98.1%
  • Nix 1.4%
  • Other 0.5%