Giter Club home page Giter Club logo

bash_ini_parser's Introduction

bash_ini_parser -- Simple INI file parser
=========================================

This is a comfortable and simple INI file parser to be used in
bash scripts.




COPYRIGHT
---------

Copyright (c) 2009 Kevin Porter / Advanced Web Construction Ltd
(http://coding.tinternet.info / http://webutils.co.uk)
Copyright (c) 2010-2014 Ruediger Meier <[email protected]>
(https://github.com/rudimeier/)

License: BSD-3-Clause, see LICENSE file




USAGE
-----

You must source the bash file into your script:

> . read_ini.sh

and then use the read_ini function, defined as:

> read_ini INI_FILE [SECTION] [[--prefix|-p] PREFIX] [[--booleans|b] [0|1]]

If SECTION is supplied, then only the specified section of the file will
be processed.

After running the read_ini function, variables corresponding to the ini
file entries will be available to you. Naming convention for variable
names is:

PREFIX__SECTION__VARNAME

PREFIX is 'INI' by default (but can be changed with the --prefix option),
SECTION and VARNAME are the section name and variable name respectively.

Additionally you can get a list of all these variable names:
PREFIX__ALL_VARS
and get a list of sections:
PREFIX__ALL_SECTIONS
and the number of sections:
PREFIX__NUMSECTIONS 

For example, to read and output the variables of this ini file:

-- START test1.ini file

var1="VAR 1"
var2 = VAR 2

[section1]
var1="section1 VAR 1"
var2= section1 VAR 2


-- END test1.ini file

you could do this:

-- START bash script

. read_ini.sh

read_ini test1.ini

echo "var1 = ${INI__var1}"
echo "var2 = ${INI__var2}"
echo "section1 var1 = ${INI__section1__var1}"
echo "section1 var2 = ${INI__section1__var2}"

echo "list of all ini vars: ${INI__ALL_VARS}"
echo "number of sections: ${INI__NUMSECTIONS}"

-- END bash script




OPTIONS
-------

[--prefix | -p] PREFIX
String to prepend to generated variable names (automatically followed by '__').
Default: INI

[--booleans | -b] [0|1]
Whether to interpret special unquoted string values 'yes', 'no', 'true',
'false', 'on', 'off' as booleans.
Default: 1




INI FILE FORMAT
---------------

- Variables are stored as name/value pairs, eg:
var=value

- Leading and trailing whitespace of the name and the value is discarded.

- Use double or single quotes to get whitespace in the values

- Section names in square brackets, eg:
[section1]
var1 = value

- Variable names can be re-used between sections (or out of section), eg:
var1=value
[section1]
var1=value
[section3]
var1=value

- Dots are converted to underscores in all variable names.

- Special boolean values: unquoted strings 'yes', 'true' and 'on' are interpreted
	as 1; 'no', 'false' and 'off' are interpreted as 0



bash_ini_parser's People

Contributors

rudimeier avatar machixian avatar davemds avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.