[Dbconfig-common-devel] dbconfig-common dbconfig-load-include,NONE,1.1
seanius@haydn.debian.org
seanius@haydn.debian.org
Update of /cvsroot/dbconfig-common/dbconfig-common
In directory haydn:/org/alioth.debian.org/chroot/home/users/seanius/tmp/cvs-serv26422
Added Files:
dbconfig-load-include
Log Message:
- updated translation
- added first attempt loading pre-dbc configs into dbc
- updated documentation
--- NEW FILE: dbconfig-load-include ---
#!/bin/sh
# set some defaults
dbuser_varname="dbuser"
dbpass_varname="dbpass"
dbname_varname="dbname"
dbserver_varname="dbserver"
dbport_varname="dbport"
dbtype_varname="dbtype"
# the version will always be < the package version
VERSION="1.7"
version(){
prog=`basename $0`
cat << EOF
$prog v$VERSION
copyright (c) 2005 sean finney <seanius@debian.org>
EOF
}
usage(){
version
cat << EOF
usage: $prog [-hv] [-a] [-d [varname]] [-u [varname]] [-p [varname]] [-s [varname]] [-P [varname]] [-t [varname]] -f format infile
infile use the given dbconfig-common config file as input
-f|--format use the given output format (default: sh)
-a|--all include all information in output (default)
-d|--dbname include the dbname in the output
-p|--dbpass include the dbpass in the output
-s|--dbserver include the dbserver in the output
-P|--dbport include the dbport in the output
-u|--dbuser include the dbuser in the output
-t|--dbtype include the dbtype in the output
-h|--help display this helpful message
-v|--version output the version and exit
format is one of a list of include-file style formats for various
programming languages. the current list includes:
sh - /bin/sh style include file
perl - perl parseable include file
php - php parseable include file
EOF
}
TEMP=`getopt -o af:hd::p::u::s::t::P::v --long help,dbuser::,dbpass::,dbport::,dbserver::,dbtype::,format:,version -n $0 -- "$@"`
if [ $? != 0 ] ; then usage >&2 ; exit 1 ; fi
eval set -- "$TEMP"
while true; do
case "$1" in
-a|--all)
use_all="yes"
shift
;;
-d|--dbname)
use_dbname="yes"
if [ ! -z "$2" ]; then
dbname_varname="$2"
fi
shift 2
;;
-u|--dbuser)
use_dbuser="yes"
if [ ! -z "$2" ]; then
dbuser_varname="$2"
fi
shift 2
;;
-p|--dbpass)
use_dbpass="yes"
if [ ! -z "$2" ]; then
dbpass_varname="$2"
fi
shift 2
;;
-s|--dbserver)
use_dbserver="yes"
if [ ! -z "$2" ]; then
dbserver_varname="$2"
fi
shift 2
;;
-P|--dbport)
use_dbport="yes"
if [ ! -z "$2" ]; then
dbport_varname="$2"
fi
shift 2
;;
-t|--dbtype)
use_dbtype="yes"
if [ ! -z "$2" ]; then
dbtype_varname="$2"
fi
shift 2
;;
-f|--format)
format="$2"
shift 2
;;
-h|--help)
usage
exit
;;
-v|--version)
version
exit
;;
--)
shift
break
;;
*)
echo "eh? $1" > /dev/stderr
exit 1
;;
esac
done
# if they asked for all vars, or didn't ask for anything (which defaults to all)
if [ "$use_all" ] || [ ! "${use_dbuser}${use_dbpass}${use_dbname}${use_dbserver}${use_dbtype}${use_dbport}" ]; then
use_dbuser="yes"
use_dbpass="yes"
use_dbname="yes"
use_dbserver="yes"
use_dbport="yes"
use_dbtype="yes"
fi
inputfile=$1
if [ ! "$inputfile" ]; then
echo "error: you must specify an inputfile" >&2
usage >&2
exit 1
fi
if [ ! -f "$inputfile" -o ! -r "$inputfile" ]; then
echo "unable to read input file $inputfile" >&2
exit 1
fi
if [ ! "$format" ]; then
echo "error: you must specify a format!" >&2
usage >&2
exit 1
fi
case $format in
sh)
. $inputfile
[ "$use_dbuser" ] && cat << EOF
$dbuser_varname='$dbc_dbuser'
EOF
[ "$use_dbpass" ] && cat << EOF
$dbpass_varname='$dbc_dbpass'
EOF
[ "$use_dbname" ] && echo "$dbname_varname='$dbc_dbname'"
[ "$use_dbserver" ] && echo "$dbserver_varname='$dbc_dbserver'"
[ "$use_dbport" ] && echo "$dbport_varname='$dbc_dbport'"
[ "$use_dbtype" ] && echo "$dbtype_varname='$dbc_dbtype'"
;;
php)
if ! which php > /dev/null; then
echo "error: php format but i can't find a php binary!" >&2
exit 1
fi
cat << EOF | php
<?php
require_once "$inputfile";
\$use_dbuser="$use_dbuser";
\$use_dbpass="$use_dbpass";
\$use_dbname="$use_dbname";
\$use_dbserver="$use_dbserver";
\$use_dbport="$use_dbport";
\$use_dbtype="$use_dbtype";
if(!empty(\$use_dbuser) && isset(\$$dbuser_varname))
echo "dbc_dbuser='\$$dbuser_varname';\n";
if(!empty(\$use_dbpass) && isset(\$$dbpass_varname))
echo "dbc_dbpass='\$$dbpass_varname';\n";
if(!empty(\$use_dbname) && isset(\$$dbname_varname))
echo "dbc_dbname='\$$dbname_varname';\n";
if(!empty(\$use_dbserver) && isset(\$$dbserver_varname))
echo "dbc_dbserver='\$$dbserver_varname';\n";
if(!empty(\$use_dbport) && isset(\$$dbport_varname))
echo "dbc_dbport='\$$dbport_varname';\n";
if(!empty(\$use_dbtype) && isset(\$$dbtype_varname))
echo "dbc_dbtype='\$$dbtype_varname';\n";
?>
EOF
;;
perl)
( cat $inputfile; cat << EOF ) | perl
print "dbc_dbuser='\$$dbuser_varname'\n" if("$use_dbuser");
print "dbc_dbpass='\$$dbpass_varname'\n" if("$use_dbpass");
print "dbc_dbname='\$$dbname_varname'\n" if("$use_dbname");
print "dbc_dbserver='\$$dbserver_varname'\n" if("$use_dbserver");
print "dbc_dbport='\$$dbport_varname'\n" if("$use_dbport");
print "dbc_dbtype='\$$dbtype_varname'\n" if("$use_dbtype");
EOF
;;
esac
exit 0