aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor <pashev.igor@gmail.com>2009-10-02 23:37:00 +0400
committerIgor <pashev.igor@gmail.com>2009-10-02 23:37:00 +0400
commita3646c1923faa4d1fccb2da21bb33d1cfc9067a3 (patch)
tree853af4ffce4764125a1a87cf8acb8b8212341fc9
parent03eb42dff718ba4bfbc0102b9ad57c17cfd9c836 (diff)
downloadnewslack-a3646c1923faa4d1fccb2da21bb33d1cfc9067a3.tar.gz
myupgradepkg
-rw-r--r--README22
-rwxr-xr-xmyupgradepkg34
2 files changed, 55 insertions, 1 deletions
diff --git a/README b/README
index efb01d7..0cabd6a 100644
--- a/README
+++ b/README
@@ -1,4 +1,24 @@
-Python programme to help upgrading Slackware
+* myupgradepkg
+
+Usage: ./myupgradepkg [Slackware packages]
+e. g. ./myupgradepkg */*.txz
+
+Shows what packages are to be installed or upgraded.
+Example output:
+
+upgradepkg /mnt/slack-13.0/slackware/a/pciutils-3.1.3-i486-1.txz # pciutils-2.2.10-i486-2
+upgradepkg /mnt/slack-13.0/slackware/a/pcmciautils-015-i486-2.txz # pcmciautils-015-i486-1
+installpkg /mnt/slack-13.0/slackware/ap/cupsddk-1.2.3-i486-1.txz
+installpkg /mnt/slack-13.0/slackware/ap/dc3dd-6.12.3-i486-1.txz
+# /mnt/slack-13.0/slackware/ap/diffstat-1.43-i486-1.txz # same
+# /mnt/slack-13.0/slackware/ap/diffutils-2.8.1-i486-3.txz # same
+upgradepkg /mnt/slack-13.0/slackware/ap/dmapi-2.2.10-i486-1.txz # dmapi-2.2.8_1-i486-1
+
+
+
+* newslack
+
+Python program to help upgrading Slackware
Usage: ./newslack [directory]
diff --git a/myupgradepkg b/myupgradepkg
new file mode 100755
index 0000000..6819da6
--- /dev/null
+++ b/myupgradepkg
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+pkgdir='/var/adm/packages'
+
+for f in "$@"; do
+ new=$(basename "$f")
+ new=$(echo "$new" | sed -r 's,\.t(gz|xz|bz2)$,,')
+ name=''; ver=''; arch=''; build=''
+ eval $(echo "$new" | \
+ sed -r 's,^(.+)-([^-]+)-([^-]+)-([^-]+)$,name="\1"\nver="\2"\narch="\3"\nbuild="\4",i' | \
+ grep =)
+
+# echo $name, $ver, $arch, $build
+
+ pushd "$pkgdir" >/dev/null
+ installed=$(ls "$name"* -1 2>/dev/null | grep -P -- ^"\Q$name\E"'-[^-]+-[^-]+-[^-]+$' )
+ first=$(echo "$installed" | head -n 1)
+ popd >/dev/null
+
+ if [ "$new" == "$first" ]; then
+ echo "# $f # same "
+ elif [ '' == "$first" ]; then
+ echo "installpkg $f"
+ else
+ echo -n "upgradepkg $f #"
+ for p in $installed; do
+ echo -n " $p"
+ done
+ echo
+ fi
+done
+
+exit 0
+