spk rev 138 1.2
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 | b70363c4c5e2 |
children | b1e6edfdb9b7 |
files | Makefile spk-dialog |
line diff
1.1 --- a/Makefile Sun Mar 30 18:34:55 2014 +0200 1.2 +++ b/Makefile Wed Apr 02 00:06:09 2014 +0200 1.3 @@ -49,6 +49,7 @@ 1.4 install -m 0755 spk $(DESTDIR)$(PREFIX)/bin 1.5 install -m 0755 spk-ls $(DESTDIR)$(PREFIX)/bin 1.6 install -m 0755 spk-find $(DESTDIR)$(PREFIX)/bin 1.7 + install -m 0755 spk-dialog $(DESTDIR)$(PREFIX)/sbin 1.8 install -m 0755 spk-rm $(DESTDIR)$(PREFIX)/sbin 1.9 install -m 0755 spk-add $(DESTDIR)$(PREFIX)/sbin 1.10 install -m 0755 spk-mirror $(DESTDIR)$(PREFIX)/sbin
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/spk-dialog Wed Apr 02 00:06:09 2014 +0200 2.3 @@ -0,0 +1,129 @@ 2.4 +#!/bin/sh 2.5 +# 2.6 +# Spk-dialog - SliTaz Packages toolset Ncurses GUI. 2.7 +# 2.8 +# Copyright (C) 2014 SliTaz GNU/Linux - BSD License 2.9 +# Author: See AUTHORS files 2.10 +# 2.11 +. /usr/lib/slitaz/libspk.sh 2.12 +check_root 2.13 + 2.14 +title="{ Spk }" 2.15 +oklab="Spk dialog" 2.16 +tmpdir="/tmp/spk-dialog" 2.17 +tmp="$tmpdir/$$" 2.18 +height="20" 2.19 +width="72" 2.20 + 2.21 +# Use a tmp directory 2.22 +mkdir -p ${tmpdir} 2.23 + 2.24 +# Small built-in help 2.25 +help() { 2.26 + cat << EOT 2.27 + 2.28 +$(boldify "$(gettext 'Usage:')") $(basename $0) 2.29 + 2.30 +EOT 2.31 +} 2.32 + 2.33 +spk_read() { 2.34 + gettext "Press ENTER to go back to Spk dialog"; read 2.35 +} 2.36 + 2.37 +# 2.38 +# GUI Functions. Some in --> /usr/lib/slitaz/libdialog.sh ??? 2.39 +# 2.40 + 2.41 +# Usage: msg_box "title" "message" 2.42 +msg_box() { 2.43 + dialog --title "{ $1 }" --cr-wrap \ 2.44 + --ok-label "$oklab" --msgbox "\n$2" ${height} ${width} 2.45 +} 2.46 + 2.47 +# Usage: text_box "file" 2.48 +text_box() { 2.49 + local file="$1" 2.50 + if [ -f "$file" ]; then 2.51 + dialog --cr-wrap \ 2.52 + --title " $(gettext 'Viewing file:') $file " \ 2.53 + --extra-button \ 2.54 + --extra-label "Edit file" \ 2.55 + --ok-label "$oklab" \ 2.56 + --textbox ${file} ${height} ${width} 2.57 + else 2.58 + dialog --title "$title" \ 2.59 + --msgbox "\nERROR: $file does not exist" 10 ${width} 2.60 + fi 2.61 + # Handle options 2.62 + case "$?" in 2.63 + 3) editor ${file} ;; 2.64 + esac 2.65 +} 2.66 + 2.67 +# Packages info and spk-up button 2.68 +spk_info_box() { 2.69 + out="$tmpdir/spk-info.txt" 2.70 + spk info --output=raw > ${out} 2.71 + dialog --cr-wrap \ 2.72 + --title "{ Spk Info }" \ 2.73 + --exit-label "$oklab" \ 2.74 + --textbox "$out" ${height} ${width} 2.75 +} 2.76 + 2.77 +# Main Dialog menu 2.78 +main_box() { 2.79 + dialog \ 2.80 + --clear \ 2.81 + --title "$title" \ 2.82 + --ok-label "Exec" \ 2.83 + --cancel-label "Quit" \ 2.84 + --menu "" ${height} ${width} 14 \ 2.85 +"info" "$(gettext 'Packages information')" \ 2.86 +"list" "$(gettext 'List installed packages')" \ 2.87 +"upgrade" "$(gettext 'Upgrade installed packages')" \ 2.88 +"clean" "$(gettext 'Clean-up packages cache')" \ 2.89 +"quit" "$(gettext 'Exit Spk dialog')" 2>${tmp} 2.90 + 2.91 + # Handle options 2.92 + opt=${?} 2.93 + case "$opt" in 2.94 + 1|255) rm -rf ${tmpdir} && exit 0 ;; 2.95 + esac 2.96 + 2.97 + # Handle actions 2.98 + action=$(cat $tmp) 2.99 + case "$action" in 2.100 + info) 2.101 + spk_info_box ;; 2.102 + list) 2.103 + spk-ls --short && spk_read ;; 2.104 + upgrade) 2.105 + spk-up && spk_read ;; 2.106 + clean) 2.107 + spk clean && spk_read ;; 2.108 + quit) 2.109 + rm -rf ${tmpdir} && exit 0 ;; 2.110 + esac 2.111 +} 2.112 + 2.113 +# 2.114 +# Handle commands 2.115 +# 2.116 + 2.117 +case "$1" in 2.118 + 2.119 + "") 2.120 + # No args: display Ncurses dialog 2.121 + while true; do 2.122 + main_box 2.123 + done ;; 2.124 + 2.125 + *|*help|-h) 2.126 + # Display help 2.127 + help ;; 2.128 +esac 2.129 + 2.130 +# Clean exit 2.131 +rm -rf ${tmpdir} 2.132 +exit 0