Minor bugfixes to main queue.
[carnet-upgrade.git] / usr / share / carnet-upgrade / cn-upgrade
1 #!/bin/sh
2 # last update: 2005-01-07
3 # Zoran 'jelly' Dzelajlija <jelly@srce.hr>
4 # Ivan 'ico' Rako <irako@srce.hr>
5 version="carnet-upgrade v2.1.4"
6
7 set -e
8
9 if [ "$DEBUG" ]; then
10   set -x
11   #ROOT=/home/jelly/work/src/carnet-upgrade
12   # make apt-get simulate-only for debug
13   s=s
14 else
15   ROOT=""
16 fi
17
18 cnup="/usr/share/carnet-upgrade"
19
20 . ${ROOT}${cnup}/messages.sh
21 . ${ROOT}${cnup}/functions.sh
22 . ${ROOT}${cnup}/data.sh
23
24 main_queuetab="${cnup}/actions/main.queue"
25 post_upgrade_queuetab="/var/lib/carnet-upgrade/post_upgrade.queue"
26
27 # logika kako slijedi:
28 # imamo popis testova i akcija koje ce se izvrsiti svakog testa
29 # ("queuetab" datoteka)
30 #
31 # akcije se izvrsavaju redoslijedom iz popisa
32 #
33 # neke akcije imaju dio koji se izvrsava prije i dio koji se izvrsava nakon
34 # upgradea, svaka takva akcija dodaje svoj post-upgrade dio akcije u
35 # zasebni red akcija, i onda se to izvrsava nakon upgradea na isti nacin
36 # kao glavni red akcija.
37
38 # queuetab file format:
39 # test          action
40 #
41 # eg. "pkg xinetd-cn lt 2:0     do_xinetd" means:
42 # if there is a version of xinetd-cn lower than 2:0 installed,
43 # invoke do_xinetd function
44 # generic tests:
45 # pkg  tests if a package is installed, optional arguments like
46 #      dpkg --compare-versions
47
48 # Sanitize environment
49 umask 022
50 cd /
51 LANG=C
52 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/share/carnet-upgrade/scripts
53 unset LC_CTYPE LC_COLLATE LC_TIME LC_NUMERIC || true
54 export PATH LANG cnup
55
56 if [ -z "$1" ]; then
57   queuetab="$main_queuetab"
58   queuename="main"
59 elif [ -f "${cnup}/actions/$1.queue" ]; then
60   queuetab="${cnup}/actions/$1.queue"
61   queuename="$1"
62   shift
63 elif [ -f "$1" ]; then
64   queuetab="$1"
65   queuename="$1"
66   shift
67 elif [ "x$1" = "x-h" -o "x$1" = "x--help" ]; then
68   echo "$version"
69   echo "$usage"
70   exit 0
71 else
72   echo "Nepoznati argumenti: $*" 1>&2
73   echo "$usage"
74   exit 1
75 fi
76
77 # need this to get custom msg_finished for "sarge" run
78 export queuename
79
80 # Do your worst
81 run_actions "$queuename" "$queuetab"
82
83 exit 0