blob: 458b707fc59961fa645819aacbfd3b71456936f7 (
plain)
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
|
% UTF8
%
% Paket fuer Properties
%
% Properties-Datei laden:
% \loadDefaultProperties lädt Datei \jobname.properties und
% falls vorhanden \jobname.local.properties
% dabei werden die vorher definierten Werte überschrieben.
% \loadOtherProperties{xxx} lädt Datei xxx.properties und
% falls vorhanden xxx.local.properties
% dabei werden die vorher definierten Werte überschrieben.
%
% Werte ermitteln:
% \getDefaultProperty{key} ermittelt den Wert für key.
% \getOtherProperty{xxx}{key} ermittelt den Wert für key und verwendet
% dabei xxx.properties.
%
% Werte setzen:
% \setDefaultProperty{key}{value} setzt für key den Wert value.
% \setOtherProperty{xxx}{key}{value} setzt für key den Wert value und verwendet
% dabei xxx.properties.
%
% (c) Michael Niedermair (m.g.n@gmx.de)
%
% Lizenz: LaTeX Project Public License
%
% $Id: properties.sty 7 2009-06-30 11:07:26Z michael $
%
% -------------------------------------
\ProvidesPackage{properties}[%
2009/06/30 v0.2 Properties (Nm)]
%
\RequirePackage{datatool}
%
\newcommand*\PROP@jobname{\jobname}
\newcommand*\PROP@extension{properties}
\newcommand*\PROP@local{local}
%
% #1 name
% #2 filename
\newcommand*\PROP@loadProperties[2]{%
\IfFileExists{#2.\PROP@extension}{%
\PackageInfo{properties}{Loading #2.\PROP@extension}%
\DTLsetseparator{=}%
\DTLloaddb[noheader,keys={key,value}]{#2}{#2.\PROP@extension}%
\DTLforeach{#2}{\PROP@key=key,\PROP@value=value}{%
\edef\@tempa{\noexpand\@namedef{#1@\PROP@key}{\PROP@value}}%
\@tempa%
}%
}{%
\PackageInfo{properties}{#2.\PROP@extension\space not found}%
}%
}%
%
\newcommand*\loadDefaultProperties{%
\loadOtherProperties{\PROP@jobname}%
}
\newcommand*\loadOtherProperties[1]{%
\PROP@loadProperties{#1}{#1}%
\PROP@loadProperties{#1}{#1.\PROP@local}%
}
%
\newcommand*\getDefaultProperty[1]{\getOtherProperty{\PROP@jobname}{#1}}
\newcommand*\setDefaultProperty[2]{\setOtherProperty{\PROP@jobname}{#1}{#2}}
\newcommand*\getOtherProperty[2]{\@nameuse{#1@#2}}
\newcommand*\setOtherProperty[3]{\@namedef{#1@#2}{#3}}
%
\endinput
|