crudini/README.md
2021-07-12 23:48:07 -04:00

2.2 KiB

crudini

Description

A utility for easily handling ini files from the command line and shell scripts.

Usage: crudini --set [OPTION]...   config_file section   [param] [value]
  or:  crudini --get [OPTION]...   config_file [section] [param]
  or:  crudini --del [OPTION]...   config_file section   [param] [list value]
  or:  crudini --merge [OPTION]... config_file [section]
Options:
  --existing[=WHAT]  For --set, --del and --merge, fail if item is missing,
                       where WHAT is 'file', 'section', or 'param', or if
                       not specified; all specified items.
  --format=FMT       For --get, select the output FMT.
                       Formats are sh,ini,lines
  --inplace          Lock and write files in place.
                       This is not atomic but has less restrictions
                       than the default replacement method.
  --list             For --set and --del, update a list (set) of values
  --list-sep=STR     Delimit list values with "STR" instead of " ,"
  --output=FILE      Write output to FILE instead. '-' means stdout
  --verbose          Indicate on stderr if changes were made
  --help             Write this help to stdout
  --version          Write version to stdout

Examples:

  • Add/Update a var

    crudini --set config_file section parameter value

  • Update an existing var

    crudini --set --existing config_file section parameter value

  • Delete a var

    crudini --del config_file section parameter

  • Delete a section

    crudini --del config_file section

  • output a value

    crudini --get config_file section parameter

  • output a global value not in a section

    crudini --get config_file '' parameter

  • output a section

    crudini --get config_file section

  • output a section, parseable by shell

    eval $(crudini --get --format=sh config_file section)

  • update an ini file from shell variable(s)

    echo name="$name" | crudini --merge config_file section

  • merge an ini file from another ini

    crudini --merge config_file < another.ini

  • compare two ini files using standard UNIX text processing

    diff <(crudini --get --format=lines file1.ini|sort) \
         <(crudini --get --format=lines file2.ini|sort)