spk view spk-dialog @ rev 138

Add spk-dialog (small ncurses/gui to spk tools)
author Christophe Lincoln <pankso@slitaz.org>
date Wed Apr 02 00:06:09 2014 +0200 (2014-04-02)
parents
children aeb1c73f12f3
line source
1 #!/bin/sh
2 #
3 # Spk-dialog - SliTaz Packages toolset Ncurses GUI.
4 #
5 # Copyright (C) 2014 SliTaz GNU/Linux - BSD License
6 # Author: See AUTHORS files
7 #
8 . /usr/lib/slitaz/libspk.sh
9 check_root
11 title="{ Spk }"
12 oklab="Spk dialog"
13 tmpdir="/tmp/spk-dialog"
14 tmp="$tmpdir/$$"
15 height="20"
16 width="72"
18 # Use a tmp directory
19 mkdir -p ${tmpdir}
21 # Small built-in help
22 help() {
23 cat << EOT
25 $(boldify "$(gettext 'Usage:')") $(basename $0)
27 EOT
28 }
30 spk_read() {
31 gettext "Press ENTER to go back to Spk dialog"; read
32 }
34 #
35 # GUI Functions. Some in --> /usr/lib/slitaz/libdialog.sh ???
36 #
38 # Usage: msg_box "title" "message"
39 msg_box() {
40 dialog --title "{ $1 }" --cr-wrap \
41 --ok-label "$oklab" --msgbox "\n$2" ${height} ${width}
42 }
44 # Usage: text_box "file"
45 text_box() {
46 local file="$1"
47 if [ -f "$file" ]; then
48 dialog --cr-wrap \
49 --title " $(gettext 'Viewing file:') $file " \
50 --extra-button \
51 --extra-label "Edit file" \
52 --ok-label "$oklab" \
53 --textbox ${file} ${height} ${width}
54 else
55 dialog --title "$title" \
56 --msgbox "\nERROR: $file does not exist" 10 ${width}
57 fi
58 # Handle options
59 case "$?" in
60 3) editor ${file} ;;
61 esac
62 }
64 # Packages info and spk-up button
65 spk_info_box() {
66 out="$tmpdir/spk-info.txt"
67 spk info --output=raw > ${out}
68 dialog --cr-wrap \
69 --title "{ Spk Info }" \
70 --exit-label "$oklab" \
71 --textbox "$out" ${height} ${width}
72 }
74 # Main Dialog menu
75 main_box() {
76 dialog \
77 --clear \
78 --title "$title" \
79 --ok-label "Exec" \
80 --cancel-label "Quit" \
81 --menu "" ${height} ${width} 14 \
82 "info" "$(gettext 'Packages information')" \
83 "list" "$(gettext 'List installed packages')" \
84 "upgrade" "$(gettext 'Upgrade installed packages')" \
85 "clean" "$(gettext 'Clean-up packages cache')" \
86 "quit" "$(gettext 'Exit Spk dialog')" 2>${tmp}
88 # Handle options
89 opt=${?}
90 case "$opt" in
91 1|255) rm -rf ${tmpdir} && exit 0 ;;
92 esac
94 # Handle actions
95 action=$(cat $tmp)
96 case "$action" in
97 info)
98 spk_info_box ;;
99 list)
100 spk-ls --short && spk_read ;;
101 upgrade)
102 spk-up && spk_read ;;
103 clean)
104 spk clean && spk_read ;;
105 quit)
106 rm -rf ${tmpdir} && exit 0 ;;
107 esac
108 }
110 #
111 # Handle commands
112 #
114 case "$1" in
116 "")
117 # No args: display Ncurses dialog
118 while true; do
119 main_box
120 done ;;
122 *|*help|-h)
123 # Display help
124 help ;;
125 esac
127 # Clean exit
128 rm -rf ${tmpdir}
129 exit 0