MyNixOS website logo
Description

A command-line manager for delicious kitchen recipes.

HeRM's: a Haskell-based Recipe Manager for delicious kitchen recipes

Herm's

Hackage stackage LTSpackage Travis build

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

Herm's Interface

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 recipe files
  • Generate shopping lists
  • Keep track of recipes with tags
  • Set default unit systems, serving sizes, language, and recipe file path in config.hs

What's new:

  • Bonjour! Herm's now has language support for Français (French), English, and Pirate. 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! Currently in progress: Português (Portuguese), Español (Spanish)
  • Herm's now conforms to the XDG Base Directory Specification. In short, config.hs and recipes.herms are now stored in ~/.config/herms and ~/.local/share/herms respectively on most Linux systems.

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 (recommended):
stack update
stack install herms
Manually cloning and installing from source with Stack
git clone https://github.com/JackKiefer/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

Usage

Command-line interface

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'

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.herms 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.herms, set this option to "../../GrandmasHugeCookbook.herms".
  • language : Human language to use. Currently supported: "Français", "English", "Pirate"

In honor of Logan, Utah's greatest Breakfast & Brunch.

Herm's Inn

Metadata

Version

1.9.0.4

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows