spk annotate spk-dialog @ rev 159
Added tag 1.4.3 for changeset 769113516402
author | Eric Joseph-Alexandre <erjo@slitaz.org> |
---|---|
date | Sun Mar 22 15:21:21 2015 +0100 (2015-03-22) |
parents | aeb1c73f12f3 |
children |
rev | line source |
---|---|
pankso@138 | 1 #!/bin/sh |
pankso@138 | 2 # |
pankso@138 | 3 # Spk-dialog - SliTaz Packages toolset Ncurses GUI. |
pankso@138 | 4 # |
pankso@138 | 5 # Copyright (C) 2014 SliTaz GNU/Linux - BSD License |
pankso@138 | 6 # Author: See AUTHORS files |
pankso@138 | 7 # |
pankso@138 | 8 . /usr/lib/slitaz/libspk.sh |
pankso@138 | 9 check_root |
pankso@138 | 10 |
pankso@138 | 11 title="{ Spk }" |
pankso@138 | 12 oklab="Spk dialog" |
pankso@138 | 13 tmpdir="/tmp/spk-dialog" |
pankso@138 | 14 tmp="$tmpdir/$$" |
pankso@138 | 15 height="20" |
pankso@138 | 16 width="72" |
pankso@138 | 17 |
pankso@138 | 18 # Use a tmp directory |
pankso@138 | 19 mkdir -p ${tmpdir} |
pankso@138 | 20 |
pankso@138 | 21 # Small built-in help |
pankso@138 | 22 help() { |
pankso@138 | 23 cat << EOT |
pankso@138 | 24 |
pankso@138 | 25 $(boldify "$(gettext 'Usage:')") $(basename $0) |
pankso@138 | 26 |
pankso@138 | 27 EOT |
pankso@138 | 28 } |
pankso@138 | 29 |
pankso@138 | 30 spk_read() { |
pankso@138 | 31 gettext "Press ENTER to go back to Spk dialog"; read |
pankso@138 | 32 } |
pankso@138 | 33 |
pankso@138 | 34 # |
pankso@138 | 35 # GUI Functions. Some in --> /usr/lib/slitaz/libdialog.sh ??? |
pankso@138 | 36 # |
pankso@138 | 37 |
pankso@138 | 38 # Usage: msg_box "title" "message" |
pankso@138 | 39 msg_box() { |
pankso@138 | 40 dialog --title "{ $1 }" --cr-wrap \ |
pankso@138 | 41 --ok-label "$oklab" --msgbox "\n$2" ${height} ${width} |
pankso@138 | 42 } |
pankso@138 | 43 |
pankso@138 | 44 # Usage: text_box "file" |
pankso@138 | 45 text_box() { |
pankso@138 | 46 local file="$1" |
pankso@138 | 47 if [ -f "$file" ]; then |
pankso@138 | 48 dialog --cr-wrap \ |
pankso@138 | 49 --title " $(gettext 'Viewing file:') $file " \ |
pankso@138 | 50 --extra-button \ |
pankso@138 | 51 --extra-label "Edit file" \ |
pankso@138 | 52 --ok-label "$oklab" \ |
pankso@138 | 53 --textbox ${file} ${height} ${width} |
pankso@138 | 54 else |
pankso@138 | 55 dialog --title "$title" \ |
pankso@138 | 56 --msgbox "\nERROR: $file does not exist" 10 ${width} |
pankso@138 | 57 fi |
pankso@142 | 58 # Handle buttons action |
pankso@138 | 59 case "$?" in |
pankso@138 | 60 3) editor ${file} ;; |
pankso@138 | 61 esac |
pankso@138 | 62 } |
pankso@138 | 63 |
pankso@138 | 64 # Packages info and spk-up button |
pankso@138 | 65 spk_info_box() { |
pankso@138 | 66 out="$tmpdir/spk-info.txt" |
pankso@138 | 67 spk info --output=raw > ${out} |
pankso@138 | 68 dialog --cr-wrap \ |
pankso@138 | 69 --title "{ Spk Info }" \ |
pankso@138 | 70 --exit-label "$oklab" \ |
pankso@138 | 71 --textbox "$out" ${height} ${width} |
pankso@138 | 72 } |
pankso@138 | 73 |
pankso@142 | 74 # Add packages |
pankso@142 | 75 spk_add_box() { |
pankso@142 | 76 dialog \ |
pankso@142 | 77 --title "{ Spk Add }" \ |
pankso@142 | 78 --no-cancel \ |
pankso@142 | 79 --ok-label "$(gettext 'Install')" \ |
paul@146 | 80 --inputbox "\n$(gettext 'Package names you wish to install:')" \ |
pankso@142 | 81 ${height} ${width} 2>${tmp} |
pankso@142 | 82 pkgs=$(cat $tmp) |
pankso@142 | 83 if [ "$pkgs" ]; then |
pankso@142 | 84 clear && spk-add ${pkgs} && spk_read |
pankso@142 | 85 fi |
pankso@142 | 86 } |
pankso@142 | 87 |
pankso@142 | 88 # Remove packages |
pankso@142 | 89 spk_rm_box() { |
pankso@142 | 90 dialog \ |
pankso@142 | 91 --title "{ Spk Remove }" \ |
pankso@142 | 92 --no-cancel \ |
pankso@142 | 93 --ok-label "$(gettext 'Remove')" \ |
paul@146 | 94 --inputbox "\n$(gettext 'Package names you wish to remove:')" \ |
pankso@142 | 95 ${height} ${width} 2>${tmp} |
pankso@142 | 96 pkgs=$(cat $tmp) |
pankso@142 | 97 if [ "$pkgs" ]; then |
pankso@142 | 98 clear && spk-rm ${pkgs} && spk_read |
pankso@142 | 99 fi |
pankso@142 | 100 } |
pankso@142 | 101 |
pankso@138 | 102 # Main Dialog menu |
pankso@138 | 103 main_box() { |
pankso@138 | 104 dialog \ |
pankso@138 | 105 --clear \ |
pankso@138 | 106 --title "$title" \ |
pankso@138 | 107 --ok-label "Exec" \ |
pankso@138 | 108 --cancel-label "Quit" \ |
pankso@138 | 109 --menu "" ${height} ${width} 14 \ |
pankso@138 | 110 "info" "$(gettext 'Packages information')" \ |
pankso@138 | 111 "list" "$(gettext 'List installed packages')" \ |
pankso@138 | 112 "upgrade" "$(gettext 'Upgrade installed packages')" \ |
pankso@142 | 113 "install" "$(gettext 'Install new packages')" \ |
pankso@142 | 114 "remove" "$(gettext 'Remove installed packages')" \ |
pankso@138 | 115 "clean" "$(gettext 'Clean-up packages cache')" \ |
pankso@138 | 116 "quit" "$(gettext 'Exit Spk dialog')" 2>${tmp} |
pankso@138 | 117 |
pankso@138 | 118 # Handle options |
pankso@138 | 119 opt=${?} |
pankso@138 | 120 case "$opt" in |
pankso@138 | 121 1|255) rm -rf ${tmpdir} && exit 0 ;; |
pankso@138 | 122 esac |
pankso@138 | 123 |
pankso@138 | 124 # Handle actions |
pankso@138 | 125 action=$(cat $tmp) |
pankso@138 | 126 case "$action" in |
pankso@138 | 127 info) |
pankso@138 | 128 spk_info_box ;; |
pankso@138 | 129 list) |
pankso@138 | 130 spk-ls --short && spk_read ;; |
pankso@138 | 131 upgrade) |
pankso@142 | 132 clear && spk-up && spk_read ;; |
pankso@142 | 133 install) |
pankso@142 | 134 spk_add_box ;; |
pankso@142 | 135 remove) |
pankso@142 | 136 spk_rm_box ;; |
pankso@138 | 137 clean) |
pankso@142 | 138 clear && spk clean && spk_read ;; |
pankso@138 | 139 quit) |
pankso@138 | 140 rm -rf ${tmpdir} && exit 0 ;; |
pankso@138 | 141 esac |
pankso@138 | 142 } |
pankso@138 | 143 |
pankso@138 | 144 # |
pankso@138 | 145 # Handle commands |
pankso@138 | 146 # |
pankso@138 | 147 |
pankso@138 | 148 case "$1" in |
pankso@138 | 149 |
pankso@138 | 150 "") |
pankso@138 | 151 # No args: display Ncurses dialog |
pankso@138 | 152 while true; do |
pankso@138 | 153 main_box |
pankso@138 | 154 done ;; |
pankso@138 | 155 |
pankso@138 | 156 *|*help|-h) |
pankso@138 | 157 # Display help |
pankso@138 | 158 help ;; |
pankso@138 | 159 esac |
pankso@138 | 160 |
pankso@138 | 161 # Clean exit |
pankso@138 | 162 rm -rf ${tmpdir} |
pankso@138 | 163 exit 0 |