1
0
mirror of https://github.com/albfan/bash-ini-parser.git synced 2025-04-19 13:22:14 +03:00
2018-05-27 13:18:47 +02:00
2015-05-15 20:01:17 +02:00
2018-05-27 13:18:47 +02:00
2018-05-27 13:07:50 +02:00
2018-01-23 01:38:40 +01:00
2018-05-26 12:05:12 +02:00
2018-01-23 01:38:40 +01:00
2018-05-26 12:17:51 +02:00
2018-01-23 01:38:40 +01:00
2018-05-07 08:03:05 +02:00
2018-01-23 01:38:40 +01:00
2018-05-07 08:03:05 +02:00

bash-ini-parser

Build Status

A ini file parser for bash relying only on builtins

Usage

You must copy bash-ini-parser on your project and source it:

$ source bash-ini-parser

or

$ . bash-ini-parser

Then, gived a properties file (file.ini):

[section]
   key = value
   key2 = value2

Issuing:

$ cfg_parser file.ini

Will declare functions per ini section called cfg_section_<section> which declares variables named as keynames so you can access its values using

$ cfg_section_<section>
$ echo $key
value
$ echo $key2
value2

Example

Goto scripts directory and launch example.sh

$ cd scripts
$ ./example.sh

Inspect its code, reuse on your scripts

Updating and saving changes

To update a value

var=new_value
cfg_update <sec> <var>

To save changes

cfg_writer > newfile.ini

Take care that saving function will loose comments and indentation, use with care

Checking a ini file

If you want to test your existing ini file use getkeyfromsection.sh

$ getkeyfromsection.sh <file.ini> sectionname keyname

e.g.:

See file.ini, it is a file with different indentations, and comments

Issuing:

$ ./testfile.sh file.ini sec1 var4

Outputs:

show parsed file.ini
[sec1]
var1="foo"
var2="hoge"
var3="fuga"
var4="pivo"
[sec2]
var1="bar"
var2="foo"
var3="eco"
var4="piyo baz qux"
var5="foo"
var6="hoge"

var4 value is "pivo"

Debugging

declare BASH_INI_PARSER_DEBUG and parse will output the ini file processing

Drawbacks

This is more a hack than a reliable parser, so keep in mind things like

  • multiword value vars will be arrays so you must access it as ${var[*]}

For a trusted parser (but based on python) checkout crudini

Alternatives

bash_ini_parser a slightly different approach.

How is using bash-ini-parser?

Credits

This is just an enhacement from http://theoldschooldevops.com/2008/02/09/bash-ini-parser

Description
Парсер ini-файлов для bash, использующий только встроенные функции
Readme GPL-3.0 188 KiB
Languages
Shell 97.4%
M4 1.6%
Makefile 1%