spk view spk-dialog @ rev 161

Remove ashism ==
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Feb 26 12:27:19 2019 +0100 (2019-02-26)
parents aeb1c73f12f3
children
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 buttons action
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 # Add packages
75 spk_add_box() {
76 dialog \
77 --title "{ Spk Add }" \
78 --no-cancel \
79 --ok-label "$(gettext 'Install')" \
80 --inputbox "\n$(gettext 'Package names you wish to install:')" \
81 ${height} ${width} 2>${tmp}
82 pkgs=$(cat $tmp)
83 if [ "$pkgs" ]; then
84 clear && spk-add ${pkgs} && spk_read
85 fi
86 }
88 # Remove packages
89 spk_rm_box() {
90 dialog \
91 --title "{ Spk Remove }" \
92 --no-cancel \
93 --ok-label "$(gettext 'Remove')" \
94 --inputbox "\n$(gettext 'Package names you wish to remove:')" \
95 ${height} ${width} 2>${tmp}
96 pkgs=$(cat $tmp)
97 if [ "$pkgs" ]; then
98 clear && spk-rm ${pkgs} && spk_read
99 fi
100 }
102 # Main Dialog menu
103 main_box() {
104 dialog \
105 --clear \
106 --title "$title" \
107 --ok-label "Exec" \
108 --cancel-label "Quit" \
109 --menu "" ${height} ${width} 14 \
110 "info" "$(gettext 'Packages information')" \
111 "list" "$(gettext 'List installed packages')" \
112 "upgrade" "$(gettext 'Upgrade installed packages')" \
113 "install" "$(gettext 'Install new packages')" \
114 "remove" "$(gettext 'Remove installed packages')" \
115 "clean" "$(gettext 'Clean-up packages cache')" \
116 "quit" "$(gettext 'Exit Spk dialog')" 2>${tmp}
118 # Handle options
119 opt=${?}
120 case "$opt" in
121 1|255) rm -rf ${tmpdir} && exit 0 ;;
122 esac
124 # Handle actions
125 action=$(cat $tmp)
126 case "$action" in
127 info)
128 spk_info_box ;;
129 list)
130 spk-ls --short && spk_read ;;
131 upgrade)
132 clear && spk-up && spk_read ;;
133 install)
134 spk_add_box ;;
135 remove)
136 spk_rm_box ;;
137 clean)
138 clear && spk clean && spk_read ;;
139 quit)
140 rm -rf ${tmpdir} && exit 0 ;;
141 esac
142 }
144 #
145 # Handle commands
146 #
148 case "$1" in
150 "")
151 # No args: display Ncurses dialog
152 while true; do
153 main_box
154 done ;;
156 *|*help|-h)
157 # Display help
158 help ;;
159 esac
161 # Clean exit
162 rm -rf ${tmpdir}
163 exit 0