2007-09-03 09:30:40 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
|
|
myname=`basename $0`
|
2008-04-10 06:40:48 +00:00
|
|
|
longname=$0
|
2007-09-19 09:34:30 +00:00
|
|
|
opts="v"
|
2007-09-03 09:30:40 +00:00
|
|
|
|
2007-09-03 20:12:01 +00:00
|
|
|
channel_present()
|
|
|
|
|
{
|
|
|
|
|
if smart channel --show $1 2>&1 | grep -q baseurl >/dev/null; then
|
|
|
|
|
return 0
|
|
|
|
|
fi
|
|
|
|
|
return 1
|
|
|
|
|
}
|
|
|
|
|
|
2007-09-03 09:30:40 +00:00
|
|
|
usage()
|
|
|
|
|
{
|
|
|
|
|
cat << EOT
|
|
|
|
|
|
2007-09-03 20:47:58 +00:00
|
|
|
$myname command [arguments]
|
2007-09-03 09:30:40 +00:00
|
|
|
|
|
|
|
|
command is one of
|
|
|
|
|
|
2017-06-10 19:08:50 +00:00
|
|
|
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
|
|
|
|
|
checklog: update the installation log file if necessary
|
|
|
|
|
rpmnew: remove superfluous rpmnew files and show conflicts
|
|
|
|
|
for others
|
2017-06-10 20:15:17 +00:00
|
|
|
build-date: show installed jannet packages along with build date
|
|
|
|
|
built-today: show installed jannet packages that were built today
|
2007-09-03 09:30:40 +00:00
|
|
|
|
|
|
|
|
EOT
|
|
|
|
|
if [ "$1" ]; then
|
|
|
|
|
exit $1
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
2007-09-19 09:34:30 +00:00
|
|
|
get_opts()
|
|
|
|
|
{
|
|
|
|
|
set -- `getopt $opts $*`
|
|
|
|
|
while [ "$1" != -- ] ; do
|
|
|
|
|
case "$1" in
|
|
|
|
|
-v)
|
|
|
|
|
opt_verbose=true
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
eusage
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
shift
|
|
|
|
|
done
|
|
|
|
|
shift
|
|
|
|
|
}
|
|
|
|
|
|
2008-04-10 06:40:48 +00:00
|
|
|
create_ldconfig_state()
|
|
|
|
|
{
|
|
|
|
|
echo "=== automatically created by $myname update script"
|
|
|
|
|
echo "--- files"
|
2008-04-10 06:42:04 +00:00
|
|
|
ls /etc/ld.so.conf.d
|
2008-04-10 06:40:48 +00:00
|
|
|
echo "--- directories"
|
2008-04-10 06:42:04 +00:00
|
|
|
find /etc/ld.so.conf.d -type f | xargs cat | sort -u
|
2008-04-10 06:40:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
check_ldconfig()
|
|
|
|
|
{
|
2017-04-07 12:15:48 +00:00
|
|
|
local state=/var/log/jw-build-ldconf.state
|
2008-04-10 06:52:43 +00:00
|
|
|
[ -f $state ] && create_ldconfig_state | diff $state - >/dev/null 2>&1 && return
|
2008-04-10 06:40:48 +00:00
|
|
|
echo -n "running ldconfig ... "
|
|
|
|
|
/sbin/ldconfig
|
|
|
|
|
create_ldconfig_state > $state
|
|
|
|
|
echo "done."
|
|
|
|
|
}
|
|
|
|
|
|
2011-02-20 14:15:22 +00:00
|
|
|
list_all_packages()
|
|
|
|
|
{
|
2017-09-01 16:29:59 +00:00
|
|
|
rpm -qa --queryformat '%{NAME}: %{URL}\n' | \
|
|
|
|
|
grep -i '^[^ ]\+:.*\(jannet\.de\|janware\.com\)' | \
|
2014-09-11 17:35:37 +00:00
|
|
|
sed 's/\(^[^ ]\+\) *:.*/\1/; s/[ ]*$//' |\
|
2011-02-20 14:15:22 +00:00
|
|
|
sort -u
|
|
|
|
|
}
|
|
|
|
|
|
2012-02-06 10:31:47 +00:00
|
|
|
cmd_rpmnew()
|
|
|
|
|
{
|
|
|
|
|
local file
|
|
|
|
|
|
|
|
|
|
list_all_packages |
|
|
|
|
|
xargs rpm -ql |
|
|
|
|
|
while read file; do
|
|
|
|
|
if [ -e "$file.rpmnew" ]; then
|
|
|
|
|
if diff -q $file $file.rpmnew; then
|
2012-02-09 09:05:44 +00:00
|
|
|
if [ -L "$file" ]; then
|
2012-02-06 10:31:47 +00:00
|
|
|
echo ========== skipping link $file
|
2012-02-09 09:07:21 +00:00
|
|
|
diff $file.rpmnew $file
|
2012-02-06 10:31:47 +00:00
|
|
|
continue
|
|
|
|
|
fi
|
|
|
|
|
echo mv $file.rpmnew $file
|
|
|
|
|
sudo mv $file.rpmnew $file
|
|
|
|
|
else
|
|
|
|
|
echo =========== $file
|
|
|
|
|
diff $file.rpmnew $file
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
}
|
|
|
|
|
|
2012-02-13 17:30:26 +00:00
|
|
|
cmd_diff()
|
|
|
|
|
{
|
|
|
|
|
local file
|
|
|
|
|
|
|
|
|
|
list_all_packages |
|
|
|
|
|
xargs rpm -qV |
|
|
|
|
|
sed '/^....L\|^..5/ !d; s%[^/]*/%/%' |
|
|
|
|
|
while read file; do
|
|
|
|
|
if diff -q $file $file.rpmnew; then
|
|
|
|
|
if [ -L "$file" ]; then
|
|
|
|
|
echo ========== skipping link $file
|
|
|
|
|
diff $file.rpmnew $file
|
|
|
|
|
continue
|
|
|
|
|
fi
|
|
|
|
|
echo mv $file.rpmnew $file
|
|
|
|
|
sudo mv $file.rpmnew $file
|
|
|
|
|
else
|
|
|
|
|
echo =========== $file
|
|
|
|
|
diff $file.rpmnew $file
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
}
|
2012-02-06 10:31:47 +00:00
|
|
|
|
2017-06-10 19:08:50 +00:00
|
|
|
cmd_build_date()
|
|
|
|
|
{
|
|
|
|
|
list_all_packages |
|
|
|
|
|
xargs rpm -q --queryformat '%{BUILDTIME} %{NAME}\n' |
|
|
|
|
|
sort -n |
|
|
|
|
|
sed 's/-run\|-devel//' |
|
|
|
|
|
sort -u |
|
|
|
|
|
while read t p; do
|
|
|
|
|
echo `date --date=@$t --rfc-3339=seconds` $p
|
|
|
|
|
done
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
cmd_built_today()
|
|
|
|
|
{
|
|
|
|
|
local today=`date +'%Y-%m-%d'`
|
|
|
|
|
cmd_build_date | grep $today | cut -d' ' -f3
|
|
|
|
|
}
|
|
|
|
|
|
2007-09-03 20:47:58 +00:00
|
|
|
cmd="$1"
|
|
|
|
|
shift
|
2007-09-19 09:34:30 +00:00
|
|
|
get_opts $*
|
2007-09-03 20:47:58 +00:00
|
|
|
|
|
|
|
|
case $cmd in
|
|
|
|
|
|
2007-09-03 20:12:01 +00:00
|
|
|
init)
|
2018-12-16 16:11:11 +00:00
|
|
|
if ! channel_present jw-foss; then
|
2007-09-03 20:12:01 +00:00
|
|
|
echo -n "adding installation source ... "
|
2018-12-16 16:11:11 +00:00
|
|
|
sudo smart channel -y --add jw-foss \
|
2007-09-03 20:12:01 +00:00
|
|
|
type=yast2 \
|
2018-12-16 16:11:11 +00:00
|
|
|
baseurl=https://pkg:we0rntj3p@janware.com/files/packages/jw-foss/suse/tumbleweed?auth=basic&credentials=jannet.cat \
|
2007-09-03 20:12:01 +00:00
|
|
|
>/dev/null 2>&1
|
|
|
|
|
if channel_present; then echo done; else echo failed; fi
|
|
|
|
|
fi
|
|
|
|
|
;;
|
2007-09-03 20:47:58 +00:00
|
|
|
|
2007-09-03 20:12:01 +00:00
|
|
|
uninit)
|
2018-12-16 16:11:11 +00:00
|
|
|
if channel_present jw-foss; then
|
2007-09-03 20:12:01 +00:00
|
|
|
echo -n "removing installation source ... "
|
2018-12-16 16:11:11 +00:00
|
|
|
sudo smart channel -y --remove jw-foss >/dev/null 2>&1
|
2007-09-03 20:12:01 +00:00
|
|
|
echo done
|
|
|
|
|
fi
|
|
|
|
|
;;
|
2007-09-03 20:47:58 +00:00
|
|
|
|
2007-09-03 09:30:40 +00:00
|
|
|
update)
|
2018-12-16 16:11:11 +00:00
|
|
|
sudo smart update jw-foss
|
2007-09-03 09:30:40 +00:00
|
|
|
sudo smart upgrade -y
|
2008-04-10 06:40:48 +00:00
|
|
|
check_ldconfig
|
2007-09-03 09:30:40 +00:00
|
|
|
;;
|
2007-09-03 20:47:58 +00:00
|
|
|
|
|
|
|
|
install)
|
2018-12-16 16:11:11 +00:00
|
|
|
sudo smart update jw-foss
|
2007-10-23 09:47:46 +00:00
|
|
|
if [ -f $1 ]; then
|
|
|
|
|
sudo smart install -y `cat $1`
|
|
|
|
|
else
|
|
|
|
|
sudo smart install -y $*
|
|
|
|
|
fi
|
2008-04-10 06:40:48 +00:00
|
|
|
check_ldconfig
|
2007-09-03 20:47:58 +00:00
|
|
|
;;
|
2008-12-06 03:40:52 +00:00
|
|
|
restore)
|
|
|
|
|
echo "not yet implemented, sorry" >&2
|
|
|
|
|
;;
|
2008-12-17 18:37:57 +00:00
|
|
|
checklog)
|
|
|
|
|
line=`jannet info | tr -s " "`
|
|
|
|
|
echo $line
|
|
|
|
|
;;
|
2007-09-09 20:54:54 +00:00
|
|
|
info)
|
2007-09-19 09:34:30 +00:00
|
|
|
if [ "$opt_verbose" = true ]; then
|
2011-02-20 14:15:22 +00:00
|
|
|
list_all_packages | xargs rpm -qi
|
2007-09-19 09:34:30 +00:00
|
|
|
else
|
2011-02-20 14:15:22 +00:00
|
|
|
list_all_packages | xargs rpm -q
|
2007-09-19 09:34:30 +00:00
|
|
|
fi
|
2007-09-09 20:54:54 +00:00
|
|
|
;;
|
2012-02-06 10:31:47 +00:00
|
|
|
rpmnew)
|
|
|
|
|
cmd_rpmnew $@
|
|
|
|
|
;;
|
2012-02-13 17:30:26 +00:00
|
|
|
diff)
|
|
|
|
|
cmd_diff $@
|
|
|
|
|
;;
|
2017-06-10 19:08:50 +00:00
|
|
|
build-date)
|
|
|
|
|
cmd_build_date
|
|
|
|
|
;;
|
|
|
|
|
built-today)
|
|
|
|
|
cmd_built_today
|
|
|
|
|
;;
|
2007-09-03 20:47:58 +00:00
|
|
|
help)
|
|
|
|
|
usage 0
|
|
|
|
|
;;
|
2007-09-03 09:30:40 +00:00
|
|
|
*)
|
|
|
|
|
usage 1
|
|
|
|
|
;;
|
2007-09-03 20:47:58 +00:00
|
|
|
|
2007-09-03 09:30:40 +00:00
|
|
|
esac
|
|
|
|
|
|
2007-09-20 16:23:36 +00:00
|
|
|
|