spk annotate spk-dialog @ rev 144

Mini up in doc
author Christophe Lincoln <pankso@slitaz.org>
date Sun Apr 06 22:33:53 2014 +0200 (2014-04-06)
parents 2024b7748587
children 20b6eecf825c
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')" \
pankso@142 80 --inputbox "\n$(gettext 'Packages name you wich 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')" \
pankso@142 94 --inputbox "\n$(gettext 'Packages name you wich 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