#!/bin/bash #JustUpgrade - a tool for safe RPM upgrades #Copyright 1998-2002, William Stearns (wstearns@pobox.com) #Released under the GPL if [ ! -d done ]; then mkdir done ; fi if [ ! -d done ]; then echo Cannot create directory "done" - exiting ; exit ; fi if [ ! -d notinst ]; then mkdir notinst ; fi if [ ! -d notinst ]; then echo Cannot create directory "notinst" - exiting ; exit ; fi if [ "${1}" = "" ]; then cat </dev/null 2>/dev/null && [ `rpm -q ${PNAME} | wc -l` -eq 1 ]; then #echo ${PNAME} installed RPMV=`rpm -V ${PNAME}` if [ `echo -n ${RPMV} | wc -l` -eq 0 ]; then #echo `rpm -V ${PNAME} | wc -l` echo ${PNAME} verifies true - upgrading case $1 in *lib*) if rpm -ivh $1 $2 ; then echo Install succeeded case $0 in *junull) touch --reference=$1 $1.new rm -f $1 mv $1.new $1 ;; *) mv -f $1 done/ ;; esac elif rpm -Uvh $1 $2 ; then echo Upgrade succeeded case $0 in *junull) touch --reference=$1 $1.new rm -f $1 mv $1.new $1 ;; *) mv -f $1 done/ ;; esac else echo Upgrade failed for $1 fi ;; *) if rpm -Uvh $1 $2 ; then echo Upgrade succeeded case $0 in *junull) touch --reference=$1 $1.new rm -f $1 mv $1.new $1 ;; *) mv -f $1 done/ ;; esac else echo Upgrade failed for $1 fi ;; esac else #echo `rpm -V ${PNAME} | wc -l` echo ${PNAME} verifies false - not upgrading #echo "${RPMV}" | less fi elif [ `rpm -q ${PNAME} | wc -l` -gt 1 ]; then echo More than one ${PNAME} installed - please fix. else echo ${PNAME} not installed - not installing new mv $1 notinst/ fi #sleep 2