% 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