Skip to content

Shell interface to the Python ConfigParser class.

License

Notifications You must be signed in to change notification settings

datakortet/dkconfig

Repository files navigation

CI/CD Pipeline Documentation Status Code Coverage

dkconfig -- command line access to ConfigParser

Installing from PyPI

pip install dkconfig

Basic usage

Most of the methods of ConfigParser (https://docs.python.org/2/library/configparser.html#ConfigParser.RawConfigParser) should be usable in a relatively obvious way, however, dkconfig tries to give you some sane defaults to make your life easier, e.g. it will create files/headers/keys that don't exist:

/tst> ll
/tst> dkconfig foo.ini set header key value
/tst> cat foo.ini
[header]
key = value

Sections can be added:

/tst> dkconfig foo.ini add_section header2
/tst> cat foo.ini
[header]
key = value

[header2]

re-adding them is a no-op (and doesn't throw an exception):

/tst> dkconfig foo.ini add_section header2
/tst> cat foo.ini
[header]
key = value

[header2]

the values command pretty prints the keys and values:

/tst> dkconfig foo.ini values
key => value

the dos command will output the key/values as dos set commands:

/tst> dkconfig foo.ini dos
set "KEY=value"

from a batch file you would use it like this:

dkconfig foo.ini dos > tmp.bat && call tmp.bat && del tmp.bat

the bash command does the same for bash, and you'll use it together with eval:

eval $(dkconfig foo.ini bash)

You can read values directly into dos variables in the regular way:

> for /f "delims=" %a in ('dkconfig foo.ini get header key') do @set KEY=%a
> echo %KEY%
value

Bash has a more sane syntax for this:

bash$ export KEY=$(dkconfig foo.ini get header key)
bash$ echo $KEY
value

The appropriate error returns are set if a key is missing:

/tst> dkconfig foo.ini get header missing
/tst> echo %ERRORLEVEL%
1

/tst> dkconfig foo.ini get header key
value
/tst> echo %ERRORLEVEL%
0