Reorganized files for packaging.
[carnet-upgrade.git] / src / cn-upgrade
diff --git a/src/cn-upgrade b/src/cn-upgrade
new file mode 100755 (executable)
index 0000000..40aa767
--- /dev/null
@@ -0,0 +1,83 @@
+#!/bin/sh
+# last update: 2005-01-07
+# Zoran 'jelly' Dzelajlija <jelly@srce.hr>
+# Ivan 'ico' Rako <irako@srce.hr>
+version="carnet-upgrade v2.1.4"
+
+set -e
+
+if [ "$DEBUG" ]; then
+  set -x
+  #ROOT=/home/jelly/work/src/carnet-upgrade
+  # make apt-get simulate-only for debug
+  s=s
+else
+  ROOT=""
+fi
+
+cnup="/usr/share/carnet-upgrade"
+
+. ${ROOT}${cnup}/messages.sh
+. ${ROOT}${cnup}/functions.sh
+. ${ROOT}${cnup}/data.sh
+
+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