revbank

Prepaid bar tab payment system for hackerspaces


Usage

revbank [--id <str>] [--datadir <dir>] [--plugindir <dir>] [--command <cmd>]
revbank [--id <str>] [--datadir <dir>] --with-lock cmd arg...
revbank --help
revbank --man  # Like --help, but more information (requires perldoc)

Description

This document only describes how to run revbank. The main documentation is in README.md.

Options

  • -c, --command

    Takes a single command line and executes it without entering the RevBank shell. The command line is parsed as input on the top-level RevBank prompt. Example: --command 'give quux 0.42 "description here"; xyzzy'.

  • --with-lock

    Takes the remaining command line arguments (use -- to stop processing) and executes them as a system command, which may involve executing a shell; see "system" in perlfunc for details.

    Useful for running external programs (e.g. backup scripts) which need a consistent/atomic view of the data directory, but will block all RevBank usage until the program is over.

    Example: --with-lock -- tar -czf revbank-data.tgz ~/.revbank

  • --id

    Overrides REVBANK_ID.

  • --datadir

    Overrides REVBANK_DATADIR.

  • --plugindir

    Overrides REVBANK_PLUGINDIR.

  • --help, --man

    View documentation: either just the options (--help) or the entire man page (--man).

Environment

Some environment variables are boolean. Non-existent variables, empty variables, and variables equal to 0 are considered false. All other values are considered true, but it is customary to just use 1 (something like yes could lead someone to believe that no would be false).

  • REVBANK_ID

    Specifies the terminal ID, which can be used by plugins to identify the specific instance. The default value is the empty string, which means "not specified".

    Valid identifiers are like in C and Perl, i.e. they can contain letters (A-Z, a-z), digits (0-9), and underscores (_), but the first character must not be a digit.

    There is no guarantee that there will be only one process with a certain id.

  • REVBANK_DATADIR

    Specifies the data directory, defaults to ~/.revbank. Will be created and populated if it does not already exist.

  • REVBANK_PLUGINDIR

    Specifies the directory for plugins that are listed without paths in $REVBANK_DATADIR/plugins. Defaults to plugins in the directory of the revbank executable.

  • REVBANK_PLUGINS

    When not empty, specifies the plugins to load, separated by whitespace, instead of reading them from $REVBANK_DATADIR/plugins.

  • REVBANK_SHADOW

    How to draw the shadow that shows what tab completion would add: dim (the default), gray, fake, or off. Use gray or fake on a terminal that ignores the dim attribute, like mosh.

  • REVBANK_DEBUG

    When true, makes RevBank print more details, like what happens with hidden accounts. Don't use in production, because those accounts are hidden for a reason.

  • REVBANK_SKIP_LOCK

    When true, disables file locking. Necessary when calling RevBank from a program that already holds the lock, but otherwise just a bad idea. Use with caution.

  • REVBANK_JSON

    Requires the json plugin. Set to lines or array for JSONL or single-array JSON output, for integrating RevBank in external software. Note that although the normal output is suppressed, not everything is available as JSON information, so it's only usable for specific use cases that are deemed possible.

  • REVBANK_STATIEGELD

    Requires the statiegeld plugin. When true, starts RevBank in deposit return mode, which means that scanned products will be container returns instead of purchases. See plugins/statiegeld.md for details.

See also

Further documentation is available in README.md, INSTALLING.md, UPGRADING.md, and all the .md files in the RevBank repository.

Author

Juerd Waalboer #####@juerd.nl

License

This software may be redistributed under the terms of the GPL, LGPL, modified BSD, or Artistic license, or any of the other OSI approved licenses listed at http://www.opensource.org/licenses/alphabetical. Distribution is allowed under all of these licenses, or any smaller subset of multiple or just one of these licenses.

When using a packaged version, please refer to the package metadata to see under which license terms it was distributed. Alternatively, a distributor may choose to replace the LICENSE section of the documentation and/or include a LICENSE file to reflect the license(s) they chose to redistribute under.