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