mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
dpm.sh: Add dpm.sh
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
3e00419ed6
commit
b9d14c67fc
1 changed files with 99 additions and 0 deletions
99
scripts/dpm.sh
Normal file
99
scripts/dpm.sh
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
#!/bin/sh
|
||||
|
||||
myname=`basename $0`
|
||||
dpkg=/usr/bin/dpkg
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "usage: $myname [-h] [... misc rpm options]"
|
||||
[ "$1" ] && exit $1
|
||||
|
||||
}
|
||||
|
||||
fatal()
|
||||
{
|
||||
echo $@ >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
cmd_install()
|
||||
{
|
||||
local n=`basename $1`
|
||||
n=`echo $n | sed "s/_[0-9.-]\+_amd64.deb//"`
|
||||
/bin/bash $0 -q $n >/dev/null 2>&1 && {
|
||||
fatal "$n is already installed (`/bin/bash $0 -q $n`)"
|
||||
}
|
||||
cmd_update $1
|
||||
}
|
||||
|
||||
cmd_update()
|
||||
{
|
||||
$dpkg --dry-run -i $1 || fatal "Test-installation failed."
|
||||
$dpkg -i $1 || fatal "Installation failed."
|
||||
}
|
||||
|
||||
cmd_erase()
|
||||
{
|
||||
$dpkg -r $1
|
||||
}
|
||||
|
||||
cmd_query()
|
||||
{
|
||||
[ "$query_cmd" ] && {
|
||||
eval cmd_query_\$query_cmd $1
|
||||
return $?
|
||||
}
|
||||
|
||||
local p=`echo $1 | sed 's/-[0-9.-]\+$//'`
|
||||
local v=`echo $1 | sed "s/$p-*//"`
|
||||
local ip=`dpkg-query -W -f '${Package}' $p`
|
||||
[ $? != 0 ] && exit 1
|
||||
local iv=`dpkg-query -W -f '${Version}' $p`
|
||||
[ "$v" ] && {
|
||||
[ "$v" != "$iv" ] && {
|
||||
echo "tried $1, installed version is $iv" >&2
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
echo $ip-$iv
|
||||
return 0
|
||||
}
|
||||
|
||||
set -- `getopt hqiUe "$@"`
|
||||
|
||||
cmd=""
|
||||
|
||||
while [ "$1" != -- ]; do
|
||||
case $1 in
|
||||
-h)
|
||||
usage 0
|
||||
;;
|
||||
-q)
|
||||
[ "$cmd" ] && usage 1
|
||||
cmd=query
|
||||
;;
|
||||
-i)
|
||||
[ "$cmd" ] && usage 1
|
||||
cmd=install
|
||||
;;
|
||||
-U)
|
||||
[ "$cmd" ] && usage 1
|
||||
cmd=update
|
||||
;;
|
||||
-e)
|
||||
[ "$cmd" ] && usage 1
|
||||
cmd=erase
|
||||
;;
|
||||
*)
|
||||
usage 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
shift
|
||||
|
||||
[ $# != 1 ] && usage 1
|
||||
[ "$cmd" ] || usage 1
|
||||
|
||||
eval cmd_\$cmd $1
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue