spk view spk @ rev 46

spk: Use debug function.
author Christopher Rogers <slaxemulator@gmail.com>
date Tue May 15 22:41:03 2012 +0000 (2012-05-15)
parents becb0314c7e1
children ee68829c1d60
line source
1 #!/bin/sh
2 #
3 # Spk - The SliTaz Packages toolset. Read the README before adding or
4 # modifing any code in spk!
5 #
6 # Copyright (C) SliTaz GNU/Linux - BSD License
7 # Author: See AUTHORS files
8 #
9 . /usr/lib/slitaz/libspk.sh
11 #
12 # Functions
13 #
15 # Help and usage
16 usage() {
17 name=$(basename $0)
18 cat << EOT
20 $(boldify $(gettext "Usage:")) $name [packages|--options]
22 $(gettext "SliTaz Packages toolset")
24 $(boldify $(gettext "Commands:"))
25 info $(gettext "Display path, mirror and other stats")
26 activity $(gettext "Display packages activities")
28 $(boldify $(gettext "Options:"))
29 --add $(gettext "Install packages if mirrored")
30 --rm $(gettext "Remove installed packages")
31 --block $(gettext "Add packages to the blocked list")
32 --unblock $(gettext "Remove packages from the blocked list")
33 --root= $(gettext "Set the root file system path")
34 --debug $(gettext "Display some usefull debug information")
36 $(boldify $(gettext "Examples:"))
37 $name package1 package2 packageN
38 $name package package2 --block
40 EOT
41 exit 0
42 }
44 #
45 # Commands and exit
46 #
48 case "$1" in
49 ""|*usage|*help) usage ;;
50 info)
51 cache="$(du -sh $CACHE_DIR | awk '{print $1 " " $2}')"
52 newline
53 boldify "Spk Info"
54 separator
55 gettext "Database :"; echo " $installed"
56 gettext "Cache info :"; echo " $cache"
57 gettext "Mirror URL :"; echo " $(cat $mirrorurl)"
58 count_installed
59 count_mirrored
60 separator
61 newline && exit 0 ;;
62 activity)
63 # --head=NB
64 : ${head=18}
65 newline
66 boldify "Spk Activity"
67 separator
68 cat $activity | head -n $head
69 separator && newline
70 exit 0 ;;
71 esac
73 #
74 # Handle packages: spk package1 ... packageN
75 #
77 debug "cmdline: $0 $@"
78 count=0
80 for pkg in $@
81 do
82 # Installed ?
83 if [ -d "$installed/$pkg" ]; then
84 # Handle: --options
85 case " $@ " in
86 *\ --block\ *)
87 check_root
88 [ -d "$installed/$pkg" ] || continue
89 if grep -qs ^${pkg}$ $blocked; then
90 echo -n "$(boldify "$pkg") "
91 gettext "is already blocked"; newline
92 else
93 gettext "Blocking package:"; echo -n " $pkg"
94 echo $pkg >> $blocked
95 log "Blocked package: $pkg" && status
96 fi
97 continue ;;
98 *\ --unblock\ *)
99 check_root
100 [ -d "$installed/$pkg" ] || continue
101 if grep -qs ^${pkg}$ $blocked; then
102 gettext "Unblocking package:"; echo -n " $pkg"
103 sed -i /"^${pkg}$"/d $blocked
104 log "Unblocked package: $pkg" && status
105 else
106 echo -n "$(boldify "$pkg") "
107 gettext "is not blocked"; newline
108 fi
109 continue ;;
110 *\ --rm\ *)
111 [ -d "$installed/$pkg" ] || continue
112 spk-rm $pkg --count=$count
113 count=$(($count + 1))
114 continue ;;
115 esac
116 count=$(($count + 1))
117 [ "$count" == 1 ] && newline
118 unset_receipt
119 . $installed/$pkg/receipt
120 boldify "$(gettext "Package") $pkg"
121 separator
122 gettext "Status :"; colorize " installed" 32
123 receipt_info
124 separator && newline
125 continue
126 fi
127 # Mirrored ?
128 mirrored=$(grep "^$pkg |" $pkgsdesc)
129 if [ "$mirrored" ]; then
130 # Handle: --options
131 case " $@ " in
132 *\ --add\ *)
133 echo "TODO: test 'spk-add $pkg'"
134 continue ;;
135 esac
136 count=$(($count + 1))
137 [ "$count" == 1 ] && newline
138 boldify "$(gettext "Package") $pkg"
139 separator
140 gettext "Status :"; colorize " not installed" 31
141 echo "$mirrored" | awk 'BEGIN { FS = "|" } ; { print \
142 "Version :" $2 "\n" \
143 "Short desc :" $3 "\n" \
144 "Category :" $4 }'
145 separator && newline
146 continue
147 fi
148 # Skip options such as --confirm or unknow package
149 case "$pkg" in
150 --*) continue ;;
151 *) gettext "WARNING: Unknow package"; echo ": $pkg"
152 esac
153 done
154 exit 0