spk rev 142

Improve spk-dialog and spk-find
author Christophe Lincoln <pankso@slitaz.org>
date Sun Apr 06 22:13:32 2014 +0200 (2014-04-06)
parents 1ab690b993b4
children ab86b026e33a
files spk-dialog spk-find
line diff
     1.1 --- a/spk-dialog	Sat Apr 05 08:23:59 2014 +0100
     1.2 +++ b/spk-dialog	Sun Apr 06 22:13:32 2014 +0200
     1.3 @@ -55,7 +55,7 @@
     1.4  		dialog --title "$title" \
     1.5  			--msgbox "\nERROR: $file does not exist" 10 ${width}
     1.6  	fi
     1.7 -	# Handle options
     1.8 +	# Handle buttons action
     1.9  	case "$?" in
    1.10  		3) editor ${file} ;;
    1.11  	esac
    1.12 @@ -71,6 +71,34 @@
    1.13  		--textbox "$out" ${height} ${width}
    1.14  }
    1.15  
    1.16 +# Add packages
    1.17 +spk_add_box() {
    1.18 +    dialog \
    1.19 +		--title "{ Spk Add }" \
    1.20 +		--no-cancel \
    1.21 +		--ok-label "$(gettext 'Install')" \
    1.22 +		--inputbox "\n$(gettext 'Packages name you wich to install:')" \
    1.23 +		${height} ${width} 2>${tmp}
    1.24 +	pkgs=$(cat $tmp)
    1.25 +	if [ "$pkgs" ]; then
    1.26 +		clear && spk-add ${pkgs} && spk_read
    1.27 +	fi
    1.28 +}
    1.29 +
    1.30 +# Remove packages
    1.31 +spk_rm_box() {
    1.32 +    dialog \
    1.33 +		--title "{ Spk Remove }" \
    1.34 +		--no-cancel \
    1.35 +		--ok-label "$(gettext 'Remove')" \
    1.36 +		--inputbox "\n$(gettext 'Packages name you wich to remove:')" \
    1.37 +		${height} ${width} 2>${tmp}
    1.38 +	pkgs=$(cat $tmp)
    1.39 +	if [ "$pkgs" ]; then
    1.40 +		clear && spk-rm ${pkgs} && spk_read
    1.41 +	fi
    1.42 +}
    1.43 +
    1.44  # Main Dialog menu
    1.45  main_box() {
    1.46  	dialog \
    1.47 @@ -82,6 +110,8 @@
    1.48  "info"         "$(gettext 'Packages information')" \
    1.49  "list"         "$(gettext 'List installed packages')" \
    1.50  "upgrade"      "$(gettext 'Upgrade installed packages')" \
    1.51 +"install"      "$(gettext 'Install new packages')" \
    1.52 +"remove"       "$(gettext 'Remove installed packages')" \
    1.53  "clean"        "$(gettext 'Clean-up packages cache')" \
    1.54  "quit"         "$(gettext 'Exit Spk dialog')" 2>${tmp}
    1.55  	
    1.56 @@ -99,9 +129,13 @@
    1.57  		list)
    1.58  			spk-ls --short && spk_read ;;
    1.59  		upgrade)
    1.60 -			spk-up && spk_read ;;
    1.61 +			clear && spk-up && spk_read ;;
    1.62 +		install)
    1.63 +			spk_add_box ;;
    1.64 +		remove)
    1.65 +			spk_rm_box ;;
    1.66  		clean)
    1.67 -			spk clean && spk_read ;;
    1.68 +			clear && spk clean && spk_read ;;
    1.69  		quit)
    1.70  			rm -rf ${tmpdir} && exit 0 ;;
    1.71  	esac
     2.1 --- a/spk-find	Sat Apr 05 08:23:59 2014 +0100
     2.2 +++ b/spk-find	Sun Apr 06 22:13:32 2014 +0200
     2.3 @@ -15,8 +15,8 @@
     2.4  #
     2.5  
     2.6  find="$1"
     2.7 -count="/tmp/spk/count"
     2.8 -mkdir -p $(dirname $count)
     2.9 +cfile="/tmp/spk/count"
    2.10 +mkdir -p $(dirname $cfile)
    2.11  
    2.12  #
    2.13  # Functions
    2.14 @@ -27,7 +27,10 @@
    2.15  	name=$(basename $0)
    2.16  	cat << EOT
    2.17  
    2.18 -$(boldify $(gettext "Usage:")) $name [package]
    2.19 +$(boldify $(gettext "Usage:")) $name [package|--options]
    2.20 +
    2.21 +$(boldify $(gettext "Options:"))
    2.22 +  --short      $(gettext "Short packages list format")
    2.23  
    2.24  EOT
    2.25  	exit 0
    2.26 @@ -41,22 +44,32 @@
    2.27  boldify $(gettext "Spk find: $find")
    2.28  separator
    2.29  
    2.30 -IFS="|"
    2.31 -grep "$find" $pkgsdesc | while read pkg vers desc null
    2.32 -do
    2.33 -	echo "$pkg" >> $count
    2.34 -	echo -n "$pkg"; indent 16 "$desc"
    2.35 -done
    2.36 -unset IFS
    2.37 +# --files or packages
    2.38 +if [ "$files" ]; then
    2.39 +	type="Files"
    2.40 +	echo "TODO"
    2.41 +else
    2.42 +	type="Packages"
    2.43 +	IFS="|"
    2.44 +	grep "$find" $pkgsdesc | while read pkg vers desc null
    2.45 +	do
    2.46 +		echo "$pkg" >> ${cfile}
    2.47 +		echo "$(colorize 34 $pkg)${vers# }"
    2.48 +		[ "$short" ] || echo "  $desc"
    2.49 +	done
    2.50 +	unset IFS
    2.51 +fi
    2.52  
    2.53 -if [ -f "$count" ]; then
    2.54 -	count=$(cat $count | wc -l)
    2.55 +# Sep and stats
    2.56 +if [ -f "$cfile" ]; then
    2.57 +	count=$(cat $cfile | wc -l)
    2.58  	color=32
    2.59  else
    2.60  	count=0
    2.61  	color=31
    2.62  fi
    2.63  separator
    2.64 -boldify "Packages found: $(colorize $color $count)" && newline
    2.65 -rm -rf $count
    2.66 +boldify "$type found: $(colorize $color $count)" && newline
    2.67 +
    2.68 +rm -rf ${cfile}
    2.69  exit 0