Skip to content

Instantly share code, notes, and snippets.

@ghprince
Created January 28, 2015 03:44
Show Gist options
  • Save ghprince/daff4b7d8830118b577d to your computer and use it in GitHub Desktop.
Save ghprince/daff4b7d8830118b577d to your computer and use it in GitHub Desktop.
TIE package upgrade in Solaris 10
#!/opt/csw/bin/bash
#requires bash 4+
#TIEfile format must be "<PKGNAME> <VERSION>" in each line, e.g.
#SUNWt1tsk 4.33
#SUNWt1ato 2.7
#SUNWtuact 1.10
usage() {
echo "Usage : $0 <TIEfile>" 1>&2
exit 1
}
function error() {
echo -e "ERROR : $*"
}
function info() {
echo -e "INFO : $*"
}
fileName=$1;
if [[ ! ${fileName} ]]; then
error "TIEfile is required"
usage
fi
noAskFileName="NOASKFILE"
echoallFileName="ECHOALLFILE"
rm ${noAskFileName} 2>/dev/null
rm ${echoallFileName} 2>/dev/null
echo "mail=
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=default" > ${noAskFileName}
echo "all" > ${echoallFileName}
while read line; do
if [[ $line =~ ^([_[:alpha:]][_[:alnum:]]*)" "(.*) ]]; then
pkgName=${BASH_REMATCH[1]}
PKGNAME=${pkgName^^}
pkgVersion=${BASH_REMATCH[2]}
currentVer=$(pkginfo -l ${pkgName} 2>/dev/null | grep VERSION | tr -s ' ' | cut -d' ' -f3)
info "Checking ${pkgName}"
info "Found ver: ${currentVer}, required ver: ${pkgVersion}"
if [[ ${currentVer} != ${pkgVersion} ]]; then
info "Trying to install ${pkgName}-${pkgVersion}"
pkgadd -a ${noAskFileName} -d http://te-ci-dev.us.oracle.com:8080/jenkins/job/rms/view/All/job/upload/ws/RMS/T${PKGNAME:5:1}/${pkgName}/${pkgName}-${pkgVersion} < ${echoallFileName}
fi
fi
done < ${fileName}
rm ${noAskFileName} 2>/dev/null
rm ${echoallFileName} 2>/dev/null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment