Fixed package-manager script
[platform/upstream/libzypp.git] / tools / package-manager / package-manager
1 #! /bin/sh
2 # by http://en.opensuse.org/User:Mvidner
3 # https://bugzilla.novell.com/show_bug.cgi?id=222757
4 usage() {
5     cat >&2 <<EOF
6 $0 version 0.2
7 Usage:
8   $0 --update ONE_NAME
9   $0 --remove ONE_NAME
10   $0 [--install [ONE_FILE]]
11 EOF
12     exit $1
13 }
14
15 HAVE_ZLM=false
16 if rpm -q zen-updater >/dev/null; then
17     HAVE_ZLM=true
18 fi
19 HAVE_OPENSUSE=false
20 if rpm -q yast2-packager >/dev/null; then
21     HAVE_OPENSUSE=true
22 fi
23
24 if $HAVE_ZLM; then
25     if $HAVE_OPENSUSE; then     
26         if [ -f /etc/sysconfig/sw_management ]; then
27             . /etc/sysconfig/sw_management
28             PSMS="$PREFERRED_SW_MANAGER_STACK"
29         fi
30
31         if [ "x$PSMS" = "xzlm" ]; then
32             STACK=zlm
33         elif [ "x$PSMS" = "xopensuse" ]; then
34             STACK=opensuse
35         else
36             echo >&2 "/etc/sysconfig/sw_management:PREFERRED_SW_MANAGER_STACK should contain"
37             echo >&2 "'zlm' or 'opensuse'"
38             STACK=ugh
39         fi
40     else
41         STACK=zlm
42     fi
43 else
44     if $HAVE_OPENSUSE; then
45         STACK=opensuse
46     else
47         echo >&2 "No package manager installed?"
48         STACK=ugh
49     fi
50 fi
51
52 xsu() {
53     # a copy of xdg-su.
54     package-manager-su -c "$*"
55 }
56
57 # do_* fall back to yast for STACK=ugh
58
59 do_update() {
60     if [ $STACK = zlm ]; then
61         zen-updater --no-tray "$@"
62     else
63         xsu yast2 --update "$@"
64     fi
65 }
66
67 do_remove() {
68     if [ $STACK = zlm ]; then
69         zen-remover "$@"
70     else
71         xsu yast2 --remove "$@"
72     fi
73 }
74
75 do_install() {
76     if [ $STACK = zlm ]; then
77         zen-installer "$@"
78     else
79         xsu yast2 --install "$@"
80     fi
81 }
82
83 if [ "x$1" = "x--update" -a $# = 2 ]; then
84     shift
85     do_update "$@"
86 elif [ "x$1" = "x--remove" -a $# = 2 ]; then
87     shift
88     do_remove "$@"
89 elif [ "x$1" = "x--install" ]; then
90     shift
91     do_install "$@"
92 elif [ $# = 0 ]; then
93     do_install
94 else
95     usage 1
96 fi