#!/bin/bash if [ ! -d /tmp/yunohost ]; then mkdir /tmp/yunohost fi if [ -f /tmp/yunohost/changelog ]; then rm /tmp/yunohost/changelog fi apt-get update -y > /dev/null 2>&1 if [[ $? != 0 ]]; then exit 2 else echo OK > /tmp/yunohost/update_status fi # Set $DIRCACHE eval `/usr/bin/apt-config shell DIRCACHE Dir::Cache` # get the list of packages which are pending an upgrade PKGNAMES=`/usr/bin/apt-get -q -y --ignore-hold --allow-unauthenticated -s dist-upgrade | \ /bin/grep ^Inst | /usr/bin/cut -d\ -f2 | /usr/bin/sort` if [[ $PKGNAMES = "" ]]; then exit 1 fi if [ -n "$PKGNAMES" ] ; then # do the upgrade downloads /usr/bin/apt-get --ignore-hold -qq -d --allow-unauthenticated --force-yes dist-upgrade > /dev/null fi PKGPATH="/${DIRCACHE}archives/" for PKG in $PKGNAMES ; do VER=`LC_ALL=C /usr/bin/apt-cache policy $PKG |\ /bin/grep Candidate: | /usr/bin/cut -f 4 -d \ ` OLDVER=`LC_ALL=C /usr/bin/apt-cache policy $PKG |\ /bin/grep Installed: | /usr/bin/cut -f 4 -d \ ` VERFILE=`echo "$VER" | /bin/sed -e "s/:/%3a/g"` if ls ${PKGPATH}${PKG}_${VERFILE}_*.deb >& /dev/null ; then DEBS="$DEBS ${PKGPATH}${PKG}_${VERFILE}_*.deb" fi echo -e "$PKG $OLDVER -> $VER" done MISSING_DEBS=`apt-get -y --ignore-hold --allow-unauthenticated --print-uris dist-upgrade \ | grep "file:" \ | sed "s/'file:\(.*\)' .*/\1/g"` DEBS=`echo $MISSING_DEBS $DEBS | /usr/bin/sort` if [[ $DEBS = "" ]]; then exit 3 else if [ -x /usr/bin/apt-listchanges ] ; then /usr/bin/apt-listchanges --which=both -f text $DEBS > /tmp/yunohost/changelog 2>/dev/null fi fi