diff options
| author | Igor <pashev.igor@gmail.com> | 2009-10-02 23:37:00 +0400 |
|---|---|---|
| committer | Igor <pashev.igor@gmail.com> | 2009-10-02 23:37:00 +0400 |
| commit | a3646c1923faa4d1fccb2da21bb33d1cfc9067a3 (patch) | |
| tree | 853af4ffce4764125a1a87cf8acb8b8212341fc9 | |
| parent | 03eb42dff718ba4bfbc0102b9ad57c17cfd9c836 (diff) | |
| download | newslack-a3646c1923faa4d1fccb2da21bb33d1cfc9067a3.tar.gz | |
myupgradepkg
| -rw-r--r-- | README | 22 | ||||
| -rwxr-xr-x | myupgradepkg | 34 |
2 files changed, 55 insertions, 1 deletions
@@ -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 + |
