[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