Browse Source

documentation and small fixes

themage
theMage 4 years ago
parent
commit
d4db5e280b
6 changed files with 683 additions and 3 deletions
  1. 201 0
      LICENCE-artistic-2_0.txt
  2. 339 0
      LICENCE-gpl-2.0.txt
  3. 4 1
      MANIFEST
  4. 1 0
      README
  5. 136 2
      lib/Config/RecurseINI.pm
  6. 2 0
      t/Config-RecurseINI.conf

+ 201 - 0
LICENCE-artistic-2_0.txt

@ -0,0 +1,201 @@
1
		       The Artistic License 2.0
2
3
	    Copyright (c) 2000-2006, The Perl Foundation.
4
5
     Everyone is permitted to copy and distribute verbatim copies
6
      of this license document, but changing it is not allowed.
7
8
Preamble
9
10
This license establishes the terms under which a given free software
11
Package may be copied, modified, distributed, and/or redistributed.
12
The intent is that the Copyright Holder maintains some artistic
13
control over the development of that Package while still keeping the
14
Package available as open source and free software.
15
16
You are always permitted to make arrangements wholly outside of this
17
license directly with the Copyright Holder of a given Package.  If the
18
terms of this license do not permit the full use that you propose to
19
make of the Package, you should contact the Copyright Holder and seek
20
a different licensing arrangement. 
21
22
Definitions
23
24
    "Copyright Holder" means the individual(s) or organization(s)
25
    named in the copyright notice for the entire Package.
26
27
    "Contributor" means any party that has contributed code or other
28
    material to the Package, in accordance with the Copyright Holder's
29
    procedures.
30
31
    "You" and "your" means any person who would like to copy,
32
    distribute, or modify the Package.
33
34
    "Package" means the collection of files distributed by the
35
    Copyright Holder, and derivatives of that collection and/or of
36
    those files. A given Package may consist of either the Standard
37
    Version, or a Modified Version.
38
39
    "Distribute" means providing a copy of the Package or making it
40
    accessible to anyone else, or in the case of a company or
41
    organization, to others outside of your company or organization.
42
43
    "Distributor Fee" means any fee that you charge for Distributing
44
    this Package or providing support for this Package to another
45
    party.  It does not mean licensing fees.
46
47
    "Standard Version" refers to the Package if it has not been
48
    modified, or has been modified only in ways explicitly requested
49
    by the Copyright Holder.
50
51
    "Modified Version" means the Package, if it has been changed, and
52
    such changes were not explicitly requested by the Copyright
53
    Holder. 
54
55
    "Original License" means this Artistic License as Distributed with
56
    the Standard Version of the Package, in its current version or as
57
    it may be modified by The Perl Foundation in the future.
58
59
    "Source" form means the source code, documentation source, and
60
    configuration files for the Package.
61
62
    "Compiled" form means the compiled bytecode, object code, binary,
63
    or any other form resulting from mechanical transformation or
64
    translation of the Source form.
65
66
67
Permission for Use and Modification Without Distribution
68
69
(1)  You are permitted to use the Standard Version and create and use
70
Modified Versions for any purpose without restriction, provided that
71
you do not Distribute the Modified Version.
72
73
74
Permissions for Redistribution of the Standard Version
75
76
(2)  You may Distribute verbatim copies of the Source form of the
77
Standard Version of this Package in any medium without restriction,
78
either gratis or for a Distributor Fee, provided that you duplicate
79
all of the original copyright notices and associated disclaimers.  At
80
your discretion, such verbatim copies may or may not include a
81
Compiled form of the Package.
82
83
(3)  You may apply any bug fixes, portability changes, and other
84
modifications made available from the Copyright Holder.  The resulting
85
Package will still be considered the Standard Version, and as such
86
will be subject to the Original License.
87
88
89
Distribution of Modified Versions of the Package as Source 
90
91
(4)  You may Distribute your Modified Version as Source (either gratis
92
or for a Distributor Fee, and with or without a Compiled form of the
93
Modified Version) provided that you clearly document how it differs
94
from the Standard Version, including, but not limited to, documenting
95
any non-standard features, executables, or modules, and provided that
96
you do at least ONE of the following:
97
98
    (a)  make the Modified Version available to the Copyright Holder
99
    of the Standard Version, under the Original License, so that the
100
    Copyright Holder may include your modifications in the Standard
101
    Version.
102
103
    (b)  ensure that installation of your Modified Version does not
104
    prevent the user installing or running the Standard Version. In
105
    addition, the Modified Version must bear a name that is different
106
    from the name of the Standard Version.
107
108
    (c)  allow anyone who receives a copy of the Modified Version to
109
    make the Source form of the Modified Version available to others
110
    under
111
		
112
	(i)  the Original License or
113
114
	(ii)  a license that permits the licensee to freely copy,
115
	modify and redistribute the Modified Version using the same
116
	licensing terms that apply to the copy that the licensee
117
	received, and requires that the Source form of the Modified
118
	Version, and of any works derived from it, be made freely
119
	available in that license fees are prohibited but Distributor
120
	Fees are allowed.
121
122
123
Distribution of Compiled Forms of the Standard Version 
124
or Modified Versions without the Source
125
126
(5)  You may Distribute Compiled forms of the Standard Version without
127
the Source, provided that you include complete instructions on how to
128
get the Source of the Standard Version.  Such instructions must be
129
valid at the time of your distribution.  If these instructions, at any
130
time while you are carrying out such distribution, become invalid, you
131
must provide new instructions on demand or cease further distribution.
132
If you provide valid instructions or cease distribution within thirty
133
days after you become aware that the instructions are invalid, then
134
you do not forfeit any of your rights under this license.
135
136
(6)  You may Distribute a Modified Version in Compiled form without
137
the Source, provided that you comply with Section 4 with respect to
138
the Source of the Modified Version.
139
140
141
Aggregating or Linking the Package 
142
143
(7)  You may aggregate the Package (either the Standard Version or
144
Modified Version) with other packages and Distribute the resulting
145
aggregation provided that you do not charge a licensing fee for the
146
Package.  Distributor Fees are permitted, and licensing fees for other
147
components in the aggregation are permitted. The terms of this license
148
apply to the use and Distribution of the Standard or Modified Versions
149
as included in the aggregation.
150
151
(8) You are permitted to link Modified and Standard Versions with
152
other works, to embed the Package in a larger work of your own, or to
153
build stand-alone binary or bytecode versions of applications that
154
include the Package, and Distribute the result without restriction,
155
provided the result does not expose a direct interface to the Package.
156
157
158
Items That are Not Considered Part of a Modified Version 
159
160
(9) Works (including, but not limited to, modules and scripts) that
161
merely extend or make use of the Package, do not, by themselves, cause
162
the Package to be a Modified Version.  In addition, such works are not
163
considered parts of the Package itself, and are not subject to the
164
terms of this license.
165
166
167
General Provisions
168
169
(10)  Any use, modification, and distribution of the Standard or
170
Modified Versions is governed by this Artistic License. By using,
171
modifying or distributing the Package, you accept this license. Do not
172
use, modify, or distribute the Package, if you do not accept this
173
license.
174
175
(11)  If your Modified Version has been derived from a Modified
176
Version made by someone other than you, you are nevertheless required
177
to ensure that your Modified Version complies with the requirements of
178
this license.
179
180
(12)  This license does not grant you the right to use any trademark,
181
service mark, tradename, or logo of the Copyright Holder.
182
183
(13)  This license includes the non-exclusive, worldwide,
184
free-of-charge patent license to make, have made, use, offer to sell,
185
sell, import and otherwise transfer the Package with respect to any
186
patent claims licensable by the Copyright Holder that are necessarily
187
infringed by the Package. If you institute patent litigation
188
(including a cross-claim or counterclaim) against any party alleging
189
that the Package constitutes direct or contributory patent
190
infringement, then this Artistic License to you shall terminate on the
191
date that such litigation is filed.
192
193
(14)  Disclaimer of Warranty:
194
THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
195
IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
196
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
197
NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
198
LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
199
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
200
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
201
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 339 - 0
LICENCE-gpl-2.0.txt

@ -0,0 +1,339 @@
1
                    GNU GENERAL PUBLIC LICENSE
2
                       Version 2, June 1991
3
4
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
 Everyone is permitted to copy and distribute verbatim copies
7
 of this license document, but changing it is not allowed.
8
9
                            Preamble
10
11
  The licenses for most software are designed to take away your
12
freedom to share and change it.  By contrast, the GNU General Public
13
License is intended to guarantee your freedom to share and change free
14
software--to make sure the software is free for all its users.  This
15
General Public License applies to most of the Free Software
16
Foundation's software and to any other program whose authors commit to
17
using it.  (Some other Free Software Foundation software is covered by
18
the GNU Lesser General Public License instead.)  You can apply it to
19
your programs, too.
20
21
  When we speak of free software, we are referring to freedom, not
22
price.  Our General Public Licenses are designed to make sure that you
23
have the freedom to distribute copies of free software (and charge for
24
this service if you wish), that you receive source code or can get it
25
if you want it, that you can change the software or use pieces of it
26
in new free programs; and that you know you can do these things.
27
28
  To protect your rights, we need to make restrictions that forbid
29
anyone to deny you these rights or to ask you to surrender the rights.
30
These restrictions translate to certain responsibilities for you if you
31
distribute copies of the software, or if you modify it.
32
33
  For example, if you distribute copies of such a program, whether
34
gratis or for a fee, you must give the recipients all the rights that
35
you have.  You must make sure that they, too, receive or can get the
36
source code.  And you must show them these terms so they know their
37
rights.
38
39
  We protect your rights with two steps: (1) copyright the software, and
40
(2) offer you this license which gives you legal permission to copy,
41
distribute and/or modify the software.
42
43
  Also, for each author's protection and ours, we want to make certain
44
that everyone understands that there is no warranty for this free
45
software.  If the software is modified by someone else and passed on, we
46
want its recipients to know that what they have is not the original, so
47
that any problems introduced by others will not reflect on the original
48
authors' reputations.
49
50
  Finally, any free program is threatened constantly by software
51
patents.  We wish to avoid the danger that redistributors of a free
52
program will individually obtain patent licenses, in effect making the
53
program proprietary.  To prevent this, we have made it clear that any
54
patent must be licensed for everyone's free use or not licensed at all.
55
56
  The precise terms and conditions for copying, distribution and
57
modification follow.
58
59
                    GNU GENERAL PUBLIC LICENSE
60
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
62
  0. This License applies to any program or other work which contains
63
a notice placed by the copyright holder saying it may be distributed
64
under the terms of this General Public License.  The "Program", below,
65
refers to any such program or work, and a "work based on the Program"
66
means either the Program or any derivative work under copyright law:
67
that is to say, a work containing the Program or a portion of it,
68
either verbatim or with modifications and/or translated into another
69
language.  (Hereinafter, translation is included without limitation in
70
the term "modification".)  Each licensee is addressed as "you".
71
72
Activities other than copying, distribution and modification are not
73
covered by this License; they are outside its scope.  The act of
74
running the Program is not restricted, and the output from the Program
75
is covered only if its contents constitute a work based on the
76
Program (independent of having been made by running the Program).
77
Whether that is true depends on what the Program does.
78
79
  1. You may copy and distribute verbatim copies of the Program's
80
source code as you receive it, in any medium, provided that you
81
conspicuously and appropriately publish on each copy an appropriate
82
copyright notice and disclaimer of warranty; keep intact all the
83
notices that refer to this License and to the absence of any warranty;
84
and give any other recipients of the Program a copy of this License
85
along with the Program.
86
87
You may charge a fee for the physical act of transferring a copy, and
88
you may at your option offer warranty protection in exchange for a fee.
89
90
  2. You may modify your copy or copies of the Program or any portion
91
of it, thus forming a work based on the Program, and copy and
92
distribute such modifications or work under the terms of Section 1
93
above, provided that you also meet all of these conditions:
94
95
    a) You must cause the modified files to carry prominent notices
96
    stating that you changed the files and the date of any change.
97
98
    b) You must cause any work that you distribute or publish, that in
99
    whole or in part contains or is derived from the Program or any
100
    part thereof, to be licensed as a whole at no charge to all third
101
    parties under the terms of this License.
102
103
    c) If the modified program normally reads commands interactively
104
    when run, you must cause it, when started running for such
105
    interactive use in the most ordinary way, to print or display an
106
    announcement including an appropriate copyright notice and a
107
    notice that there is no warranty (or else, saying that you provide
108
    a warranty) and that users may redistribute the program under
109
    these conditions, and telling the user how to view a copy of this
110
    License.  (Exception: if the Program itself is interactive but
111
    does not normally print such an announcement, your work based on
112
    the Program is not required to print an announcement.)
113
114
These requirements apply to the modified work as a whole.  If
115
identifiable sections of that work are not derived from the Program,
116
and can be reasonably considered independent and separate works in
117
themselves, then this License, and its terms, do not apply to those
118
sections when you distribute them as separate works.  But when you
119
distribute the same sections as part of a whole which is a work based
120
on the Program, the distribution of the whole must be on the terms of
121
this License, whose permissions for other licensees extend to the
122
entire whole, and thus to each and every part regardless of who wrote it.
123
124
Thus, it is not the intent of this section to claim rights or contest
125
your rights to work written entirely by you; rather, the intent is to
126
exercise the right to control the distribution of derivative or
127
collective works based on the Program.
128
129
In addition, mere aggregation of another work not based on the Program
130
with the Program (or with a work based on the Program) on a volume of
131
a storage or distribution medium does not bring the other work under
132
the scope of this License.
133
134
  3. You may copy and distribute the Program (or a work based on it,
135
under Section 2) in object code or executable form under the terms of
136
Sections 1 and 2 above provided that you also do one of the following:
137
138
    a) Accompany it with the complete corresponding machine-readable
139
    source code, which must be distributed under the terms of Sections
140
    1 and 2 above on a medium customarily used for software interchange; or,
141
142
    b) Accompany it with a written offer, valid for at least three
143
    years, to give any third party, for a charge no more than your
144
    cost of physically performing source distribution, a complete
145
    machine-readable copy of the corresponding source code, to be
146
    distributed under the terms of Sections 1 and 2 above on a medium
147
    customarily used for software interchange; or,
148
149
    c) Accompany it with the information you received as to the offer
150
    to distribute corresponding source code.  (This alternative is
151
    allowed only for noncommercial distribution and only if you
152
    received the program in object code or executable form with such
153
    an offer, in accord with Subsection b above.)
154
155
The source code for a work means the preferred form of the work for
156
making modifications to it.  For an executable work, complete source
157
code means all the source code for all modules it contains, plus any
158
associated interface definition files, plus the scripts used to
159
control compilation and installation of the executable.  However, as a
160
special exception, the source code distributed need not include
161
anything that is normally distributed (in either source or binary
162
form) with the major components (compiler, kernel, and so on) of the
163
operating system on which the executable runs, unless that component
164
itself accompanies the executable.
165
166
If distribution of executable or object code is made by offering
167
access to copy from a designated place, then offering equivalent
168
access to copy the source code from the same place counts as
169
distribution of the source code, even though third parties are not
170
compelled to copy the source along with the object code.
171
172
  4. You may not copy, modify, sublicense, or distribute the Program
173
except as expressly provided under this License.  Any attempt
174
otherwise to copy, modify, sublicense or distribute the Program is
175
void, and will automatically terminate your rights under this License.
176
However, parties who have received copies, or rights, from you under
177
this License will not have their licenses terminated so long as such
178
parties remain in full compliance.
179
180
  5. You are not required to accept this License, since you have not
181
signed it.  However, nothing else grants you permission to modify or
182
distribute the Program or its derivative works.  These actions are
183
prohibited by law if you do not accept this License.  Therefore, by
184
modifying or distributing the Program (or any work based on the
185
Program), you indicate your acceptance of this License to do so, and
186
all its terms and conditions for copying, distributing or modifying
187
the Program or works based on it.
188
189
  6. Each time you redistribute the Program (or any work based on the
190
Program), the recipient automatically receives a license from the
191
original licensor to copy, distribute or modify the Program subject to
192
these terms and conditions.  You may not impose any further
193
restrictions on the recipients' exercise of the rights granted herein.
194
You are not responsible for enforcing compliance by third parties to
195
this License.
196
197
  7. If, as a consequence of a court judgment or allegation of patent
198
infringement or for any other reason (not limited to patent issues),
199
conditions are imposed on you (whether by court order, agreement or
200
otherwise) that contradict the conditions of this License, they do not
201
excuse you from the conditions of this License.  If you cannot
202
distribute so as to satisfy simultaneously your obligations under this
203
License and any other pertinent obligations, then as a consequence you
204
may not distribute the Program at all.  For example, if a patent
205
license would not permit royalty-free redistribution of the Program by
206
all those who receive copies directly or indirectly through you, then
207
the only way you could satisfy both it and this License would be to
208
refrain entirely from distribution of the Program.
209
210
If any portion of this section is held invalid or unenforceable under
211
any particular circumstance, the balance of the section is intended to
212
apply and the section as a whole is intended to apply in other
213
circumstances.
214
215
It is not the purpose of this section to induce you to infringe any
216
patents or other property right claims or to contest validity of any
217
such claims; this section has the sole purpose of protecting the
218
integrity of the free software distribution system, which is
219
implemented by public license practices.  Many people have made
220
generous contributions to the wide range of software distributed
221
through that system in reliance on consistent application of that
222
system; it is up to the author/donor to decide if he or she is willing
223
to distribute software through any other system and a licensee cannot
224
impose that choice.
225
226
This section is intended to make thoroughly clear what is believed to
227
be a consequence of the rest of this License.
228
229
  8. If the distribution and/or use of the Program is restricted in
230
certain countries either by patents or by copyrighted interfaces, the
231
original copyright holder who places the Program under this License
232
may add an explicit geographical distribution limitation excluding
233
those countries, so that distribution is permitted only in or among
234
countries not thus excluded.  In such case, this License incorporates
235
the limitation as if written in the body of this License.
236
237
  9. The Free Software Foundation may publish revised and/or new versions
238
of the General Public License from time to time.  Such new versions will
239
be similar in spirit to the present version, but may differ in detail to
240
address new problems or concerns.
241
242
Each version is given a distinguishing version number.  If the Program
243
specifies a version number of this License which applies to it and "any
244
later version", you have the option of following the terms and conditions
245
either of that version or of any later version published by the Free
246
Software Foundation.  If the Program does not specify a version number of
247
this License, you may choose any version ever published by the Free Software
248
Foundation.
249
250
  10. If you wish to incorporate parts of the Program into other free
251
programs whose distribution conditions are different, write to the author
252
to ask for permission.  For software which is copyrighted by the Free
253
Software Foundation, write to the Free Software Foundation; we sometimes
254
make exceptions for this.  Our decision will be guided by the two goals
255
of preserving the free status of all derivatives of our free software and
256
of promoting the sharing and reuse of software generally.
257
258
                            NO WARRANTY
259
260
  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
262
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
266
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
267
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
REPAIR OR CORRECTION.
269
270
  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
POSSIBILITY OF SUCH DAMAGES.
279
280
                     END OF TERMS AND CONDITIONS
281
282
            How to Apply These Terms to Your New Programs
283
284
  If you develop a new program, and you want it to be of the greatest
285
possible use to the public, the best way to achieve this is to make it
286
free software which everyone can redistribute and change under these terms.
287
288
  To do so, attach the following notices to the program.  It is safest
289
to attach them to the start of each source file to most effectively
290
convey the exclusion of warranty; and each file should have at least
291
the "copyright" line and a pointer to where the full notice is found.
292
293
    <one line to give the program's name and a brief idea of what it does.>
294
    Copyright (C) <year>  <name of author>
295
296
    This program is free software; you can redistribute it and/or modify
297
    it under the terms of the GNU General Public License as published by
298
    the Free Software Foundation; either version 2 of the License, or
299
    (at your option) any later version.
300
301
    This program is distributed in the hope that it will be useful,
302
    but WITHOUT ANY WARRANTY; without even the implied warranty of
303
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
304
    GNU General Public License for more details.
305
306
    You should have received a copy of the GNU General Public License along
307
    with this program; if not, write to the Free Software Foundation, Inc.,
308
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
310
Also add information on how to contact you by electronic and paper mail.
311
312
If the program is interactive, make it output a short notice like this
313
when it starts in an interactive mode:
314
315
    Gnomovision version 69, Copyright (C) year name of author
316
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
    This is free software, and you are welcome to redistribute it
318
    under certain conditions; type `show c' for details.
319
320
The hypothetical commands `show w' and `show c' should show the appropriate
321
parts of the General Public License.  Of course, the commands you use may
322
be called something other than `show w' and `show c'; they could even be
323
mouse-clicks or menu items--whatever suits your program.
324
325
You should also get your employer (if you work as a programmer) or your
326
school, if any, to sign a "copyright disclaimer" for the program, if
327
necessary.  Here is a sample; alter the names:
328
329
  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
  `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
332
  <signature of Ty Coon>, 1 April 1989
333
  Ty Coon, President of Vice
334
335
This General Public License does not permit incorporating your program into
336
proprietary programs.  If your program is a subroutine library, you may
337
consider it more useful to permit linking proprietary applications with the
338
library.  If this is what you want to do, use the GNU Lesser General
339
Public License instead of this License.

+ 4 - 1
MANIFEST

@ -1,6 +1,9 @@
1 1
Changes
2
lib/Config/RecurseINI.pm
3
LICENCE-artistic-2_0.txt
4
LICENCE-gpl-2.0.txt
2 5
Makefile.PL
3 6
MANIFEST
4 7
README
8
README.md
5 9
t/Config-RecurseINI.t
6
lib/Config/RecurseINI.pm

+ 1 - 0
README

@ -0,0 +1 @@
1
README.md

+ 136 - 2
lib/Config/RecurseINI.pm

@ -16,10 +16,12 @@ my %exports = map { $_ => 1 } @EXPORT_OK;
16 16
our $VERSION = '0.9.0';
17 17
18 18
my $defaultpath 	= abs_path($0);
19
$defaultpath			=~s{/\w?bin/[^/]+$}{/config/};
19
unless ($defaultpath =~ s{/\w?bin/[^/]+$}{/config/}) {
20
  $defaultpath =~ s{/[^/]+$}{/};
21
}
20 22
my $scriptpath		= $0;
21 23
my ($scriptname)	= $scriptpath =~ m{([^/]+)$};
22
$scriptname =~ s{\.pl$}{};
24
$scriptname =~ s{\.(pl|t)$}{};
23 25
24 26
my @configdirs  = ();
25 27
if ($ENV{HOME}) {
@ -277,3 +279,135 @@ sub get_env_params {
277 279
1;
278 280
__END__
279 281
282
=head1 NAME
283
284
Config::RecurseINI - some extras on top of Config::Tiny
285
286
=head1 SYNOPSIS
287
288
    use Config::RecurseINI 'someapp' => qw(config);
289
290
    my $dbname = config('database','dbname');
291
    my %dbconfig = config('database');
292
293
=head1 DESCRIPTION
294
295
Config::RecuseINI adds two main things on top of Config::Tiny:
296
297
=over 4
298
299
=item Config Inheritance
300
301
You can define one section as being the same as other section with
302
some extras (or overrides):
303
304
  [dabatase]
305
  hostname=127.0.0.1
306
  username=dbuser
307
  password=passwd
308
309
  [database:users]
310
  _isa=database
311
  dbname=user
312
313
  [database:posts]
314
  _isa=database
315
  dbname=posts
316
317
when calling config('database:users') config::RecurseINI will return
318
319
   {  hostname  => '127.0.0.1',
320
      username  => 'dbuser',
321
      password  => 'passwd',
322
      dbname    => 'user',
323
   }
324
325
=item Config Discovery
326
327
Config::RecurseINI looks for the config file - see bellow L<config-name> -
328
in several places, in order:
329
330
=over 4
331
332
=item - $HOME/
333
334
if the env variable $HOME is defined, it will look for a file named
335
.<config-name> - this is the only e
336
337
=item - $HOME/.config/
338
339
=item - /etc/
340
341
=item - .../config/
342
343
if $0 is in a .../bin/ or .../?bin/ directory, it looks for a config file
344
in a config directory in the parent of that directory.
345
346
=back
347
348
=back
349
350
=head2 config-name
351
352
the first time you use Config::RecurseINI you can define what is the name
353
of the config file if that is not given, the basename of $0 will be used
354
355
example:
356
357
  use Config::RecurseINI 'someapp' => qw(config);
358
359
either way, that will be only the basename of the config file, and the
360
name will be appended with .ini or .conf - both will be search for, in
361
that order.
362
363
=head1 METHODS
364
365
=head2 config($section[, $key])
366
367
config can take one or two parameters - the first will return a full config
368
section, while the second will return the value of a specific config key
369
in that section.
370
371
In case of usage with only one parameter, config will return an HASH or
372
an hashref, depending on context.
373
374
=head2 debug
375
376
Config::RecurseINI uses several different ways to define what debug level
377
will be used: env $DEBUG, the parameter --debug or the debug key in the
378
root of your config file.
379
380
=head2 versbose
381
382
the same as with debug, $VERBOSE, --verbose and verbose key in the root
383
section.
384
385
=head1 BUG REPORTS and FEATURE REQUESTS
386
387
Please report any bugs or request features in:
388
389
=over 4
390
391
=item github: https://github.com/themage/perl-config-recurseini
392
393
=item Magick Source: http://magick-source.net/MagickPerl/Config-RecurseINI
394
395
=back
396
397
=head1 AUTHOR
398
399
theMage E<lt>themage@magick-source.netE<gt>
400
401
=head1 COPYRIGHT and LICENSE
402
403
Copyright (C) 2016 by theMage
404
405
This library is free software; you can redistribute it and/or modify
406
it under the same terms as Perl itself, either Perl version 5.22.1 or,
407
at your option, any later version of Perl 5 you may have available.
408
409
Alternativally, you can also redistribute it and/or modify it
410
under the terms of the GPL 2.0 licence (or any future version of it).
411
412
=cut
413

+ 2 - 0
t/Config-RecurseINI.conf

@ -0,0 +1,2 @@
1
debug=4
2