#!/bin/bash # last update: 2005-01-07 # Zoran 'jelly' Dzelajlija # Ivan 'ico' Rako version="%PKG_VERSION%" # restart upgrade under script for logging purposes if [ "$1" == "--no-script" ]; then # restore umask to default umask 0022 shift elif [ -x /usr/bin/script ]; then # make logs safe umask 0077 chmod og= /var/log/carnet-upgrade.* 2>/dev/null # restart through script exec /usr/bin/script -a -t -f -c "$0 --no-script $@" \ /var/log/carnet-upgrade.typescript 2>>/var/log/carnet-upgrade.timing fi set -e if [ "$DEBUG" ]; then set -x #ROOT=/home/jelly/work/src/carnet-upgrade # make apt simulate-only for debug s=s else ROOT="" fi cnup="/usr/share/carnet-upgrade" . ${ROOT}${cnup}/data.sh . ${ROOT}${cnup}/messages.sh . ${ROOT}${cnup}/functions.sh log "carnet-upgrade v$version starting" main_queuetab="${cnup}/actions/main.queue" post_upgrade_queuetab="/var/lib/carnet-upgrade/post_upgrade.queue" # logika kako slijedi: # imamo popis testova i akcija koje ce se izvrsiti svakog testa # ("queuetab" datoteka) # # akcije se izvrsavaju redoslijedom iz popisa # # neke akcije imaju dio koji se izvrsava prije i dio koji se izvrsava nakon # upgradea, svaka takva akcija dodaje svoj post-upgrade dio akcije u # zasebni red akcija, i onda se to izvrsava nakon upgradea na isti nacin # kao glavni red akcija. # queuetab file format: # test action # # eg. "pkg xinetd-cn lt 2:0 do_xinetd" means: # if there is a version of xinetd-cn lower than 2:0 installed, # invoke do_xinetd function # generic tests: # pkg tests if a package is installed, optional arguments like # dpkg --compare-versions # Sanitize environment umask 022 cd / LANG=C PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/share/carnet-upgrade/scripts unset LC_CTYPE LC_COLLATE LC_TIME LC_NUMERIC || true export PATH LANG cnup if [ -z "$1" ]; then queuetab="$main_queuetab" queuename="main" elif [ -f "${cnup}/actions/$1.queue" ]; then queuetab="${cnup}/actions/$1.queue" queuename="$1" shift elif [ -f "$1" ]; then queuetab="$1" queuename="$1" shift elif [ "x$1" = "x-h" -o "x$1" = "x--help" ]; then echo "$version" echo "$usage" exit 0 else echo "Nepoznati argumenti: $*" 1>&2 echo "$usage" exit 1 fi # need this to get custom msg_finished for "sarge" run export queuename # Do your worst run_actions "$queuename" "$queuetab" exit 0