#!/bin/sh myname=`basename $0` longname=$0 opts="v" channel_present() { if smart channel --show $1 2>&1 | grep -q baseurl >/dev/null; then return 0 fi return 1 } usage() { cat << EOT $myname command [arguments] command is one of help: show this help screen init: initialize uninit: undo initialization install: install packages in [arguments] update: update all jannet software on the system restore: restore a previous jannet software version state info: query information about installed software EOT if [ "$1" ]; then exit $1 fi } get_opts() { set -- `getopt $opts $*` while [ "$1" != -- ] ; do case "$1" in -v) opt_verbose=true ;; *) eusage ;; esac shift done shift } create_ldconfig_state() { echo "=== automatically created by $myname update script" echo "--- files" ls /etc/ld.so.conf.d echo "--- directories" find /etc/ld.so.conf.d -type f | xargs cat | sort -u } check_ldconfig() { local state=/var/log/ytools-ldconf.state [ -f $state ] && create_ldconfig_state | diff $state - >/dev/null 2>&1 && return echo -n "running ldconfig ... " /sbin/ldconfig create_ldconfig_state > $state echo "done." } cmd="$1" shift get_opts $* case $cmd in init) if ! channel_present ftp.jannet.de; then echo -n "adding installation source ... " sudo smart channel -y --add ftp.jannet.de \ type=yast2 \ baseurl=ftp://dspadm:dspasswd@ftp.jannet.de/pub/packages/linux/suse/10.1/inst-source \ >/dev/null 2>&1 if channel_present; then echo done; else echo failed; fi fi ;; uninit) if channel_present ftp.jannet.de; then echo -n "removing installation source ... " sudo smart channel -y --remove ftp.jannet.de >/dev/null 2>&1 echo done fi ;; update) sudo smart update ftp.jannet.de sudo smart upgrade -y check_ldconfig ;; install) sudo smart update ftp.jannet.de if [ -f $1 ]; then sudo smart install -y `cat $1` else sudo smart install -y $* fi check_ldconfig ;; restore) echo "not yet implemented, sorry" >&2 ;; info) if [ "$opt_verbose" = true ]; then rpm -qai | grep -iB 7 "jannet.de\|c-mexx.com" else rpm -qai | \ grep -iB 7 "jannet.de\|c-mexx.com" | \ sed '/Name/ !d; s/Name *: //; s/ *.*//' | \ xargs rpm -q | \ sort -u fi ;; cpp-glib) sudo rpm -U --replacefiles --replacepkgs --oldpackage \ ftp://dspadm@ftp.jannet.de/pub/packages/linux/suse/10.1/inst-source/rpm/i586/glib2-2.8.5-19.i586.rpm check_ldconfig ;; help) usage 0 ;; *) usage 1 ;; esac