#! /bin/bash # Imports source /etc/make.conf BASE_DIR="/usr/local/update" REMOTE_DIR="http://www.felixpetzold.de/Gentoo/update" # Functions function ebuild_name() { echo "$(ls *.ebuild 2> /dev/null | sort -r | head -n 1 )" } function is_installed() { # ${1} must be the full qualified package name like sys-apps/portage if (test $(eix ${1} | grep -i Installed | cut -c 27 | head -n 1) -ge "0" 2> /dev/null) then true else false fi } function install_script() { mkdir -p ${PORTDIR_OVERLAY}/app-admin/update cd ${PORTDIR_OVERLAY}/app-admin/update rm -rf * echo "Downloading app-admin/update-${LATEST_VERSION}" wget ${REMOTE_DIR}/update-${LATEST_VERSION}.tar.gz >> /dev/null echo "Extracting app-admin/update-${LATEST_VERSION}" tar -xpf update-${LATEST_VERSION}.tar.gz >> /dev/null rm -f update-${LATEST_VERSION}.tar.gz rm -f Manifest 2> /dev/null >> /dev/null ebuild $(ebuild_name) manifest >> /dev/null if $(is_installed app-admin/update) then if ($(cat ${PORTDIR_OVERLAY}/app-admin/update/*.ebuild | grep app-portage/eix- | cut -d"-" -f3) != $(eix app-portage/eix | grep Installed | cut -d" " -f9 | cut -d"(" -f1)) then emerge -1 autounmask >> /dev/null autounmask app-admin/update-${LATEST_VERSION} else if ($(cat ${PORTDIR_OVERLAY}/app-admin/update/*.ebuild | grep sys-apps/portage- | cut -d"-" -f3) != $(eix sys-apps/portage | grep Installed | cut -d" " -f9 | cut -d"(" -f1)) then emerge -1 autounmask >> /dev/null autounmask app-admin/update-${LATEST_VERSION} else echo "no need to run autounmask. " fi fi else echo "unmasking dependencies with autounmask" if $(is_installed app-portage/autounmask) then echo "your already have autounmask installed. No need to emerge it" else echo "no autounmask installed. emerging it" emerge -1 autounmask >> /dev/null fi autounmask app-admin/update-${LATEST_VERSION} fi echo "emerging app-admin/update-${LATEST_VERSION} now" emerge update >> /dev/null echo "done. you can use my script now. THX for trying it" } # Executive Area clear if (test -f ${BASE_DIR}/update) then # Update vorhanden? INSTALLED_VERSION="$(cat ${BASE_DIR}/update | grep myVersion= | cut -d"\"" -f2)" 2> /dev/null echo "Installed version: app-admin/update-${INSTALLED_VERSION}" cd /tmp wget ${REMOTE_DIR}/latest-version.txt >> /dev/null LATEST_VERSION="$(cat latest-version.txt)" rm -f latest-version.txt echo "Latest version: app-admin/update-${LATEST_VERSION}" if (test ${LATEST_VERSION} == ${INSTALLED_VERSION} 2> /dev/null) then echo "Your version is up to date" else echo "Updating your version" install_script fi else # Installation cd /tmp wget ${REMOTE_DIR}/latest-version.txt 2> /dev/null >> /dev/null LATEST_VERSION="$(cat latest-version.txt)" rm -f latest-version.txt echo "Latest version: app-admin/update-${INSTALLED_VERSION}" install_script fi