-
Notifications
You must be signed in to change notification settings - Fork 57
/
README
131 lines (77 loc) · 2.62 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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