jw-pkg/scripts/jannet
2008-04-10 06:52:43 +00:00

138 lines
2.4 KiB
Bash

#!/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
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
;;
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