tazpkg view lib/tazpkgbox/package_infos @ rev 331

tazpkgbox: replace firefox; add tip item
author Rohit Joshi <jozee@slitaz.org>
date Thu Mar 18 17:25:43 2010 +0000 (2010-03-18)
parents dc03e5ec0773
children 7873a4992871
line source
1 #!/bin/sh
2 #
3 # Dialog box to provide package info and actions
4 #
6 XTERM_OPTS="-geometry 80x16+120+120"
8 PKG=`cat /tmp/tazpkgbox/pkg | sed s/" "/""/g`
9 ROOT=/var/lib/tazpkg
10 if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then
11 ROOT=$(readlink /var/lib/tazpkg/fslink)$ROOT
12 fi
13 TMP_DIR=/tmp/tazpkg-$$-$RANDOM
15 if [ "$1" = "sizes" ]; then
16 cat <<EOT
17 Dependancies for $2:
18 $(tazpkg depends $2)
20 Reverse dependancies for $2:
21 $(tazpkg rdepends $2)
22 EOT
23 exit 0
24 fi
25 if [ "$1" = "info" ]; then
26 RECEIPT=$ROOT/installed/$3/receipt
27 . $RECEIPT
28 case "$2" in
29 Web*) browser $WEB_SITE &;;
30 Siz*) xterm -T "$3 depends (q to quit)" -e "$0 sizes $3 | less";;
31 Upg*) xterm -T "$3 upgrade" -e "tazpkg get-install $3 --forced ; sleep 2";;
32 Hand*) browser $HANDBOOK_URL &;;
33 Sug*) $0 list_packages $SUGGESTED;;
34 Dep*) $0 list_packages $DEPENDS;;
35 Mod*) $0 list_packages $(xargs echo < $ROOT/installed/$3/modifiers);;
36 Con*) tazpkgbox list_config $3;;
37 Ver*) xterm -T "$3 receipt (q to quit)" -e "cat $RECEIPT | less";;
38 esac
39 exit 0
40 fi
42 if [ "$1" = "list_files" ]; then
43 CONF_FILES="$(tazpkg list-config $2 | awk "$AWK_FILTER")"
44 if [ -n "$CONF_FILES" ]; then
45 mkdir $TMP_DIR
46 zcat $ROOT/installed/$2/volatile.cpio.gz | \
47 ( cd $TMP_DIR ; cpio -id > /dev/null )
48 fi
49 cat $ROOT/installed/$2/files.list | grep ^/ | while read file; do
50 realfile="$file"
51 if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then
52 realfile="$(readlink /var/lib/tazpkg/fslink)$file"
53 fi
54 echo -n "$(stat -c "%A|%U|%G|%s|$file|" "$realfile" || \
55 echo "File lost !||||$file|")"
56 if [ -L "$realfile" ]; then
57 echo -n "$(readlink "$realfile")"
58 elif [ -f "$file" ]; then
59 case "$CONF_FILES" in
60 *$file*)
61 if cmp $file $TMP_DIR$file > /dev/null 2>&1; then
62 echo -n "[configuration]"
63 else
64 echo -n "$(stat -c "[configuration: %.16y]" $file)"
65 fi;;
66 #* if [ "$(tazpkg check-file $file $2)" = "failure" ]; then
67 # echo -n "Invalid md5"
68 # fi;;
69 esac
70 fi
71 echo ""
72 done
73 [ -n "$CONF_FILES" ] && rm -rf $TMP_DIR
74 exit 0
75 fi
77 if [ "$1" = "list_files_mirror" ]; then
78 for i in /var/lib/tazpkg/files.list.lzma \
79 /var/lib/tazpkg/undigest/*/files.list.lzma ; do
80 [ -f $i ] || continue
81 unlzma -c $i
82 done | grep -- "^$2:" | awk '{ print substr($0,index($0,":")+2) }'
83 exit 0
84 fi
86 if [ "$1" = "list_packages" ]; then
87 PKG="$2"
88 if [ -n "$3" ]; then
89 shift
90 export LIST_PKGS='
91 <window title="Packages" icon-name="tazpkg">
92 <vbox>
93 <tree>
94 <width>600</width><height>160</height>
95 <label>Package|Version|Size|Description</label>
96 <variable>PKG</variable>
97 '
98 for i in "$@"; do
99 if [ -d $ROOT/installed/$i ]; then
100 . $ROOT/installed/$i/receipt
101 LIST_PKGS="$LIST_PKGS
102 <item icon=\"tazpkg\">$i|$VERSION|Installed|$SHORT_DESC</item>
103 "
104 else
105 RES=`grep -sh "^$i " \
106 /var/lib/tazpkg/packages.desc \
107 /var/lib/tazpkg/undigest/*/packages.desc`
108 PACKAGE=`echo "$RES" | cut -d "|" -f 1`
109 VERSION=`echo "$RES" | cut -d "|" -f 2`
110 SHORT_DESC=`echo "$RES" | cut -d "|" -f 3`
111 SIZE=`grep -sh -A 3 "^$(echo $PACKAGE)$" \
112 /var/lib/tazpkg/packages.txt \
113 /var/lib/tazpkg/undigest/*/packages.txt | \
114 tail -1 | sed 's/.*(\(.*\) .*/\1/'`
115 LIST_PKGS="$LIST_PKGS
116 <item icon=\"tazpkg\">$i|$VERSION|$SIZE|$SHORT_DESC</item>
117 "
118 fi
119 done
120 LIST_PKGS="$LIST_PKGS
121 <action>echo "\$PKG" > /tmp/tazpkgbox/pkg</action>
122 <action>/usr/lib/slitaz/tazpkgbox/package_infos</action>
123 <action>refresh:PKG</action>
124 <action>refresh:PKG_STATS</action>
125 <action>refresh:CACHE_STATS</action>
126 </tree>
127 <hbox>
128 <button ok>
129 </button>
130 <button cancel>
131 <action type=\"closewindow\">LIST_PKGS</action>
132 </button>
133 </hbox>
134 </vbox>
135 </window>
136 "
137 eval `gtkdialog --center --program=LIST_PKGS`
138 [ "$EXIT" = "OK" ] || exit 0
139 fi
140 fi
142 export LIST_FILES="
143 <window title=\"$PKG files\" icon-name=\"system-file-manager\">
144 <vbox>
145 <tree exported_column=\"4\">
146 <variable>FILE</variable>
147 <width>600</width><height>160</height>
148 <label>Access | User | Group | Size | Name | Target</label>
149 <input> $0 list_files $PKG </input>
150 <action>tazpkg list-config $PKG | grep -q ^\$FILE$ && leafpad \$FILE</action>
151 </tree>
152 <hbox>
153 <button>
154 <input file icon=\"gtk-close\"></input>
155 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
156 </button>
157 </hbox>
158 </vbox>
159 </window>
160 "
162 export LIST_FILES_MIRROR="
163 <window title=\"$PKG files\" icon-name=\"system-file-manager\">
164 <vbox>
165 <tree>
166 <width>300</width><height>160</height>
167 <label>File Name</label>
168 <input> $0 list_files_mirror $PKG </input>
169 </tree>
170 <hbox>
171 <button>
172 <input file icon=\"gtk-close\"></input>
173 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
174 </button>
175 </hbox>
176 </vbox>
177 </window>
178 "
180 # Installed or not installed, that is the question!
181 if [ -d $ROOT/installed/$PKG ]; then
182 PACKED_SIZE=""
183 DEPENDS=""
184 MAINTAINER=""
185 BUGS=""
186 TAGS=""
187 . $ROOT/installed/$PKG/receipt
188 MAINTAINER=$(echo "$MAINTAINER" | sed 's/[<>|]/ /g')
189 upgrade_version="$(cat /var/lib/tazpkg/packages.desc \
190 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | \
191 awk "/^$PACKAGE / { print \$3 }" | head -1 )"
192 UPGRADE=""
193 if [ -n "$upgrade_version" ]; then
194 if [ "$upgrade_version" != "$VERSION" ]; then
195 UPGRADE="$upgrade_version"
196 else
197 cur_md5="$(awk "/ $PACKAGE-$VERSION/ { print \$1 }" \
198 $ROOT/installed.md5)"
199 new_md5="$(cat /var/lib/tazpkg/packages.md5 \
200 /var/lib/tazpkg/undigest/*/packages.md5 \
201 2> /dev/null | awk "/ $PACKAGE-$VERSION/ { print \$1 }")"
202 if [ -n "$cur_md5" -a -n "$new_md5" -a \
203 "$cur_md5" != "$new_md5" ]; then
204 UPGRADE="build"
205 fi
206 fi
207 fi
208 PACKAGE_INFOS="
209 <window title=\"Package: $PKG\" icon-name=\"package-x-generic\">
210 <vbox>
212 <tree>
213 <width>460</width><height>200</height>
214 <label>$PKG|$SHORT_DESC</label>
215 <variable>FIELD</variable>
216 <item icon=\"tazpkg\">Version: | $VERSION</item>
217 <item icon=\"tazpkg\">Category: | $CATEGORY</item>"
218 [ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS
219 <item icon=\"tazpkg\">Upgrade: | $(echo $UPGRADE)</item>"
220 [ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
221 <item icon=\"tazpkg\">Depends: | $(echo $DEPENDS)</item>"
222 [ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS
223 <item icon=\"tazpkg\">Suggested: | $(echo $SUGGESTED)</item>"
224 [ -n "$PACKED_SIZE" ] && PACKAGE_INFOS="$PACKAGE_INFOS
225 <item icon=\"tazpkg\">Size: | $PACKED_SIZE ($UNPACKED_SIZE installed)</item>"
226 [ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS
227 <item icon=\"system-users\">Maintainer: | $MAINTAINER</item>"
228 [ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
229 <item icon=\"important\">Bugs: | $BUGS</item>"
230 [ -n "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS
231 <item icon=\"ascii\">Handbook: | $HANDBOOK_URL</item>"
232 [ -n "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
233 <item icon=\"tazpkg\">Tags: | $TAGS</item>"
234 [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS
235 <item icon=\"tazpkg\">Config files: | $CONFIG_FILES</item>"
236 [ -f $ROOT/installed/$PKG/modifiers ] &&
237 PACKAGE_INFOS="$PACKAGE_INFOS
238 <item icon=\"tazpkg\">Modified by: | $(xargs echo < $ROOT/installed/$PKG/modifiers)</item>"
239 PACKAGE_INFOS="$PACKAGE_INFOS
240 <item icon=\"applications-internet\">Web site: | $WEB_SITE</item>
241 <action> $0 info \"\$FIELD\" $PKG </action>
242 <item icon=\"help\">Tip: | Double-click items above to view more information</item>
243 </tree>
245 <hbox>"
246 [ -s $ROOT/installed/$PACKAGE/description.txt ] &&
247 PACKAGE_INFOS="$PACKAGE_INFOS
248 <button>
249 <label>Description</label>
250 <input file icon=\"help\"></input>
251 <action>xterm -T \"$PKG description (q to quit)\" $XTERM_OPTS \
252 -e \"less $ROOT/installed/$PKG/description.txt\"</action>
253 </button>"
254 if [ ! -d /var/lib/tazpkg/fslink ]; then
255 [ ${PKG%%-*} = get -a ! -d $ROOT/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS
256 <button>
257 <label>Install</label>
258 <input file icon=\"go-next\"></input>
259 <action>xterm -T \"Install ${PKG#get-}\" $XTERM_OPTS -e \"\
260 $PKG; sleep 5\"</action>
261 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
262 </button>"
263 [ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS
264 <button>
265 <label>Upgrade</label>
266 <input file icon=\"go-next\"></input>
267 <action>xterm -T \"Install $PKG\" $XTERM_OPTS -e \"\
268 tazpkg get-install $PKG --forced ; sleep 5\"</action>
269 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
270 </button>"
271 grep -q post_install $ROOT/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS
272 <button>
273 <label>Reconfigure</label>
274 <input file icon=\"reload\"></input>
275 <action>xterm -T \"Reconfigure $PACKAGE\" $XTERM_OPTS -e \"\
276 tazpkg reconfigure $PACKAGE; sleep 2\"</action>
277 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
278 </button>"
279 if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then
280 PACKAGE_INFOS="$PACKAGE_INFOS
281 <button>
282 <label>Unblock</label>
283 <input file icon=\"up\"></input>
284 <action>xterm -T \"Unblock $PACKAGE\" $XTERM_OPTS -e \"\
285 tazpkg unblock $PACKAGE; sleep 2\"</action>
286 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
287 </button>"
288 else
289 PACKAGE_INFOS="$PACKAGE_INFOS
290 <button>
291 <label>Block</label>
292 <input file icon=\"down\"></input>
293 <action>xterm -T \"Block $PACKAGE\" $XTERM_OPTS -e \"\
294 tazpkg block $PACKAGE; sleep 2\"</action>
295 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
296 </button>"
297 fi
298 fi
299 if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then
300 PACKAGE_INFOS="$PACKAGE_INFOS
301 <button>
302 <label>Link</label>
303 <input file icon=\"edit-redo\"></input>
304 <action>xterm -T \"Link $PACKAGE\" $XTERM_OPTS -e \"\
305 tazpkg link $PACKAGE $(readlink /var/lib/tazpkg/fslink); sleep 2\"</action>
306 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
307 </button>"
308 elif [ ! -s $ROOT/installed/$PKG/modifiers ]; then
309 [ -L $ROOT/installed/$PKG ] || PACKAGE_INFOS="$PACKAGE_INFOS
310 <button>
311 <label>Repack</label>
312 <input file icon=\"edit-redo\"></input>
313 <action>xterm -T \"Repack $PACKAGE\" $XTERM_OPTS -e \"\
314 cd /var/cache/tazpkg; \
315 tazpkg repack $PACKAGE; sleep 2\"</action>
316 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
317 </button>
318 "
319 PACKAGE_INFOS="$PACKAGE_INFOS
320 <button>
321 <label>Remove</label>
322 <input file icon=\"edit-delete\"></input>
323 <action>xterm -T \"Remove $PACKAGE\" $XTERM_OPTS -e \"\
324 tazpkg remove $PACKAGE; sleep 2\"</action>
325 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
326 </button>
327 "
328 else
329 PACKAGE_INFOS="$PACKAGE_INFOS
330 <button>
331 <label>Re-install</label>
332 <input file icon=\"edit-redo\"></input>
333 <action>xterm -T \"Re-install $PACKAGE\" $XTERM_OPTS -e \"\
334 tazpkg get-install $PACKAGE --forced; sleep 2\"</action>
335 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
336 </button>
337 <button>
338 <label>Remove</label>
339 <input file icon=\"edit-delete\"></input>
340 <action>xterm -T \"Remove $PACKAGE\" $XTERM_OPTS -e \"\
341 tazpkg remove $PACKAGE; sleep 2\"</action>
342 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
343 </button>
344 "
345 fi
346 PACKAGE_INFOS="$PACKAGE_INFOS
347 <button>
348 <label>View Files</label>
349 <input file icon=\"tazpkg\"></input>
350 <action type=\"launch\">LIST_FILES</action>
351 </button>
352 <button>
353 <input file icon=\"gtk-close\"></input>
354 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
355 </button>
356 </hbox>
358 </vbox>
359 </window>
360 "
361 export PACKAGE_INFOS
362 else
363 RES=`grep -sh "^$PKG " /var/lib/tazpkg/packages.desc \
364 /var/lib/tazpkg/undigest/*/packages.desc`
365 PACKAGE=`echo "$RES" | cut -d "|" -f 1`
366 VERSION=`echo "$RES" | cut -d "|" -f 2`
367 SHORT_DESC=`echo "$RES" | cut -d "|" -f 3`
368 CATEGORY=`echo "$RES" | cut -d "|" -f 4`
369 WEB_SITE=`echo "$RES" | cut -d "|" -f 5`
370 SIZES=`grep -sh -A 3 "^$(echo $PACKAGE)$" /var/lib/tazpkg/packages.txt \
371 /var/lib/tazpkg/undigest/*/packages.txt | tail -1`
372 DEPENDS=""
373 SUGGESTED=""
374 MAINTAINER=""
375 BUGS=""
376 HANDBOOK_URL=""
377 TAGS=""
378 CONFIG_FILES=""
379 height=160
380 if [ -s /home/slitaz/wok/$PKG/receipt ]; then
381 . /home/slitaz/wok/$PKG/receipt
382 height=200
383 fi
384 PACKAGE_INFOS="
385 <window title=\"Package: $PACKAGE\" icon-name=\"package-x-generic\">
386 <vbox>
388 <tree>
389 <width>460</width><height>$height</height>
390 <label>$PKG|$SHORT_DESC</label>
391 <variable>FIELD2</variable>
392 <item icon=\"tazpkg\">Version: | $VERSION</item>
393 <item icon=\"tazpkg\">Category: | $CATEGORY</item>"
394 [ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
395 <item icon=\"tazpkg\">Depends: | $(echo $DEPENDS)</item>"
396 [ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS
397 <item icon=\"tazpkg\">Suggested: | $(echo $SUGGESTED)</item>"
398 [ -n "$SIZES" ] && PACKAGE_INFOS="$PACKAGE_INFOS
399 <item icon=\"tazpkg\">Size: | $SIZES</item>"
400 [ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS
401 <item icon=\"system-users\">Maintainer: | $MAINTAINER</item>"
402 [ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
403 <item icon=\"important\">Bugs: | $BUGS</item>"
404 [ -n "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS
405 <item icon=\"ascii\">Handbook: | $HANDBOOK_URL</item>"
406 [ -n "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
407 <item icon=\"tazpkg\">Tags: | $TAGS</item>"
408 [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS
409 <item icon=\"tazpkg\">Config files: | $CONFIG_FILES</item>"
410 PACKAGE_INFOS="$PACKAGE_INFOS
411 <item icon=\"applications-internet\">Web site: | $WEB_SITE</item>
412 <action>case \$FIELD2 in Web*) browser $WEB_SITE &;; esac</action>
413 <item icon=\"help\">Tip: | Double-click items above to view more information</item>
414 </tree>
416 <hbox>"
417 [ ${PACKAGE%%-*} = get ] && PACKAGE_INFOS="$PACKAGE_INFOS
418 <checkbox>
419 <label>Auto exec</label>
420 <variable>AUTO_EXEC</variable>
421 <default>true</default>
422 </checkbox>"
423 PACKAGE_INFOS="$PACKAGE_INFOS
424 <checkbox>
425 <label>Auto install depends</label>
426 <variable>AUTO_DEPENDS</variable>
427 <default>true</default>
428 </checkbox>
429 <button>
430 <label>Install Package</label>
431 <input file icon=\"go-next\"></input>
432 <action>xterm -T \"Install $PACKAGE\" $XTERM_OPTS -e \"\
433 if [ x\$AUTO_DEPENDS != xtrue ]; then script -c \\\"tazpkg get-install $PACKAGE\\\" /var/log/tazpkg-install.log;\
434 else script -c \\\"yes y | tazpkg get-install $PACKAGE\\\" /var/log/tazpkg-install.log; fi; \
435 [ x\${AUTO_EXEC} = xtrue ] && $PACKAGE; \
436 sleep 2\"</action>
437 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action>
438 </button>
439 <button>
440 <label>Download</label>
441 <input file icon=\"go-next\"></input>
442 <action>xterm -T \"Get $PACKAGE\" $XTERM_OPTS -e \"\
443 cd /var/cache/tazpkg; tazpkg get $PACKAGE; sleep 2\"</action>
444 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action>
445 </button>
446 <button>
447 <label>View Files</label>
448 <input file icon=\"tazpkg\"></input>
449 <action type=\"launch\">LIST_FILES_MIRROR</action>
450 </button>
451 <button>
452 <input file icon=\"gtk-close\"></input>
453 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action>
454 </button>
455 </hbox>
457 </vbox>
458 </window>
459 "
460 export PACKAGE_INFOS
461 fi
463 gtkdialog --center --program=PACKAGE_INFOS
465 exit 0