autospec,plugins,libraries: a color scheme can be selected now by using the new command-line option '--colorize-theme'

Signed-off-by: Davide Madrisan <davide.madrisan@gmail.com>
This commit is contained in:
Davide Madrisan 2012-11-10 15:47:12 +01:00
parent 990661c11e
commit cd7d6b663d
13 changed files with 133 additions and 38 deletions

View File

@ -13,6 +13,11 @@ Changes in version 1.14.2
* autospec - Davide Madrisan: * autospec - Davide Madrisan:
Send the debug message showing autospec version as soon as possible. Send the debug message showing autospec version as soon as possible.
+ improvement
* autospec, plugins/*,lib/lib*.lib - Davide Madrisan:
A color scheme can be selected now by using the new command-line option
'--colorize-theme'.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Changes in version 1.14.1 - _TO*Hacklab release Changes in version 1.14.1 - _TO*Hacklab release

View File

@ -63,6 +63,7 @@ function autospec.usage() {
-V, --version "$"Print version number, then exit"" -V, --version "$"Print version number, then exit""
-q, --quiet "$"Run in quiet mode"" -q, --quiet "$"Run in quiet mode""
-r, --colorize "$"Enable the colorized output"" -r, --colorize "$"Enable the colorized output""
--colorize-theme "$"Select the theme to be used for the colorized output""
-D, --debug "$"Run in debugging mode (very verbose output)"" -D, --debug "$"Run in debugging mode (very verbose output)""
"$"Usage"": "$"Usage"":
@ -90,8 +91,29 @@ notify.disable_colors
{ echo "$me: "$"library not found"": @libdir@/libcfg.lib" 1>&2 { echo "$me: "$"library not found"": @libdir@/libcfg.lib" 1>&2
exit 1; } exit 1; }
for arg in $@; do # Little helper function for reading args from the commandline.
case $arg in # it automatically handles -a b and -a=b variants, and returns 1 if
# we need to shift $3.
# see. /usr/sbin/mkinitrd (dracut-024)
function read_arg() {
# $1 = arg name
# $2 = arg value
# $3 = arg parameter
local rematch='^[^=]*=(.*)$'
if [[ $2 =~ $rematch ]]; then
read "$1" <<< "${BASH_REMATCH[1]}"
elif [[ $3 != -* ]]; then
# Only read next arg if it not an arg itself.
read "$1" <<< "$3"
# There is no way to shift our callers args, so
# return 1 to indicate they should do it instead.
return 1
fi
}
args=($@)
while (($# > 0)); do
case ${1%%=*} in
-u|--update) -u|--update)
let "pck_update = 1" ;; let "pck_update = 1" ;;
-s|--source) -s|--source)
@ -106,15 +128,19 @@ for arg in $@; do
let "verbose = 0" ;; let "verbose = 0" ;;
-r|--colorize) -r|--colorize)
let "colorize = 1" ;; let "colorize = 1" ;;
--colorize-theme)
read_arg colorize_theme "$@" || shift ;;
-h|--help) -h|--help)
let "print_help = 1" ;; let "print_help = 1" ;;
-V|--version) -V|--version)
let "print_version = 1" ;; let "print_version = 1" ;;
*) ;; *) ;;
esac esac
shift
done done
notify.debug "[${me[0]}, "$"version"" ${me[1]}]" notify.debug "[${me[0]}, "$"version"" ${me[1]}]"
notify.debug "colorize_theme = \"$colorize_theme\""
case "$(( $pck_update + $spec_create + $pck_extract + $config_getvar ))" in case "$(( $pck_update + $spec_create + $pck_extract + $config_getvar ))" in
0) [ "$print_help" = "1" ] && autospec.usage 0 0) [ "$print_help" = "1" ] && autospec.usage 0
@ -157,9 +183,8 @@ notify.debug "tmpargfile = \`${NOTE}$tmpargfile${NORM}'"
# workaround to bypass the issues related to bash expansion in multi-word # workaround to bypass the issues related to bash expansion in multi-word
# strings (ex: autospec -u s.spec -a4 1.0 --changelog "here's the problem") # strings (ex: autospec -u s.spec -a4 1.0 --changelog "here's the problem")
echo -n "set -- " > $tmpargfile echo -n "set -- " > $tmpargfile
while [ $# -gt 0 ]; do for i in `seq 1 1 ${#args[@]}`; do
echo -n "\"$1\" " >> $tmpargfile echo -n "\"${args[$i-1]}\" " >> $tmpargfile
shift
done done
echo >> $tmpargfile echo >> $tmpargfile

View File

@ -14,31 +14,6 @@ if [[ -z "$LANG" && -r /etc/sysconfig/i18n ]]; then
fi fi
TEXTDOMAIN="libmsgmng"; export TEXTDOMAIN TEXTDOMAIN="libmsgmng"; export TEXTDOMAIN
# function notify.enable_colors
# enable if possible the colorized output
# args:
# none
function notify.enable_colors() {
if [[ -t 1 && "$TERM" != raw && "$TERM" != dumb ]]; then
ESC=$(echo -en "\033") # ascii ESCape
[ "$CRIT" ] || CRIT="${ESC}[1;31m" # switch on red
[ "$NOTE" ] || NOTE="${ESC}[1;33m" # switch on yellow
[ "$WARN" ] || WARN="${ESC}[1;31m"
[ "$EXIT" ] || EXIT="${ESC}[1;31m"
[ "$NORM" ] || NORM=$(echo -en "${ESC}[m\017")
else
ESC= CRIT= NOTE= WARN= EXIT= NORM=
fi
}
# function notify.disable_colors
# disable the colorized output
# args:
# none
function notify.disable_colors() {
ESC= CRIT= NOTE= WARN= EXIT= NORM=
}
# notify family of message handling functions: # notify family of message handling functions:
# - notify.warning # - notify.warning
# - notify.error # - notify.error
@ -73,4 +48,59 @@ function notify.note() {
echo -e "${1:-$notify_def_msg}" echo -e "${1:-$notify_def_msg}"
} }
# function notify.enable_colors
# enable if possible the colorized output
# args:
# none
function notify.enable_colors() {
local colorize_theme="$1"
# for backward compatibility
[ "$colorize_theme" ] || colorize_theme="terminal-dark"
case "$colorize_theme" in
"web")
CRIT="<font color=white style=\"background-color:red\">"
NOTE="<font color=gold>"
WARN="<font color=red>"
EXIT="$CRIT"
NORM="</font>"
;;
"terminal-white")
if [[ -t 1 && "$TERM" != raw && "$TERM" != dumb ]]; then
ESC=$(echo -en "\033") # ascii ESCape
[ "$NOTE" ] || NOTE="${ESC}[1;34m" # switch on blu
[ "$WARN" ] || WARN="${ESC}[1;31m"
[ "$EXIT" ] || EXIT="${ESC}[1;31m"
[ "$NORM" ] || NORM=$(echo -en "${ESC}[m\017")
else
ESC= CRIT= NOTE= WARN= EXIT= NORM=
fi
;;
"terminal-dark")
if [[ -t 1 && "$TERM" != raw && "$TERM" != dumb ]]; then
ESC=$(echo -en "\033") # ascii ESCape
[ "$CRIT" ] || CRIT="${ESC}[1;31m" # switch on red
[ "$NOTE" ] || NOTE="${ESC}[1;33m" # switch on yellow
[ "$WARN" ] || WARN="${ESC}[1;31m"
[ "$EXIT" ] || EXIT="${ESC}[1;31m"
[ "$NORM" ] || NORM=$(echo -en "${ESC}[m\017")
else
ESC= CRIT= NOTE= WARN= EXIT= NORM=
fi
;;
*) echo \
$"unknown color theme \`$colorize_theme': colors will be disabled"
ESC= CRIT= NOTE= WARN= EXIT= NORM=
;;
esac
}
# function notify.disable_colors
# disable the colorized output
# args:
# none
function notify.disable_colors() {
ESC= CRIT= NOTE= WARN= EXIT= NORM=
}
} # endif $libmsgmng_is_loaded } # endif $libmsgmng_is_loaded

View File

@ -64,6 +64,7 @@ function usage() {
-V, --version "$"Print version number, then exit"" -V, --version "$"Print version number, then exit""
-q, --quiet "$"Run in quiet mode"" -q, --quiet "$"Run in quiet mode""
-r, --colorize "$"Enable the colorized output"" -r, --colorize "$"Enable the colorized output""
--colorize-theme "$"Select the theme to be used for the colorized output""
-D, --debug "$"Run in debugging mode (very verbose output)"" -D, --debug "$"Run in debugging mode (very verbose output)""
"$"Samples"": "$"Samples"":
@ -96,7 +97,7 @@ done
exec_options=`LC_ALL=C getopt \ exec_options=`LC_ALL=C getopt \
-o C:DqrhV \ -o C:DqrhV \
--long eval:,config:,\ --long eval:,config:,\
debug,quiet,colorize,help,version,\ debug,quiet,colorize,colorize-theme:,help,version,\
frontend_opts: \ frontend_opts: \
-n "$me" -- "$@"` -n "$me" -- "$@"`
[ $? = 0 ] || exit 1 [ $? = 0 ] || exit 1
@ -116,6 +117,8 @@ while :; do
let "verbose = 0" ;; let "verbose = 0" ;;
-r|--colorize) -r|--colorize)
let "colorize = 1" ;; let "colorize = 1" ;;
--colorize-theme)
colorize_theme="$2"; shift ;;
-h|--help) -h|--help)
usage 0 ;; usage 0 ;;
-V|--version) -V|--version)
@ -131,7 +134,8 @@ for arg in $@; do
notify.error $"unrecognized option"" -- \`$arg'" notify.error $"unrecognized option"" -- \`$arg'"
done done
[ "$colorize" = "1" ] && notify.enable_colors || notify.disable_colors [ "$colorize" = "1" ] && notify.enable_colors "$colorize_theme" \
|| notify.disable_colors
# config.getvar() # config.getvar()
# Parameters: # Parameters:

View File

@ -68,6 +68,7 @@ function usage() {
-V, --version "$"Print version number, then exit"" -V, --version "$"Print version number, then exit""
-q, --quiet "$"Run in quiet mode"" -q, --quiet "$"Run in quiet mode""
-r, --colorize "$"Enable the colorized output"" -r, --colorize "$"Enable the colorized output""
--colorize-theme "$"Select the theme to be used for the colorized output""
-D, --debug "$"Run in debugging mode (very verbose output)"" -D, --debug "$"Run in debugging mode (very verbose output)""
"$"Samples"": "$"Samples"":
@ -101,7 +102,7 @@ exec_options=`LC_ALL=C getopt \
-o xF:DqrhV \ -o xF:DqrhV \
--long \ --long \
extract,files:,destdir:,\ extract,files:,destdir:,\
debug,quiet,colorize,help,version,\ debug,quiet,colorize,colorize-theme:,help,version,\
frontend_opts: \ frontend_opts: \
-n "$me" -- "$@"` -n "$me" -- "$@"`
[ $? = 0 ] || exit 1 [ $? = 0 ] || exit 1
@ -122,6 +123,8 @@ while :; do
let "verbose = 0" ;; let "verbose = 0" ;;
-r|--colorize) -r|--colorize)
let "colorize = 1" ;; let "colorize = 1" ;;
--colorize-theme)
colorize_theme="$2"; shift ;;
-h|--help) -h|--help)
usage 0 ;; usage 0 ;;
-V|--version) -V|--version)
@ -137,7 +140,8 @@ for arg in $@; do
notify.error $"unrecognized option"" -- \`$arg'" notify.error $"unrecognized option"" -- \`$arg'"
done done
[ "$colorize" = "1" ] && notify.enable_colors || notify.disable_colors [ "$colorize" = "1" ] && notify.enable_colors "$colorize_theme" \
|| notify.disable_colors
# s_rpm_pck : the name of the srpm package (local or remote) # s_rpm_pck : the name of the srpm package (local or remote)
# (i.e. /usr/src/RPM/SRPMS/automake-1.9-1qilnx.src.rpm) # (i.e. /usr/src/RPM/SRPMS/automake-1.9-1qilnx.src.rpm)

View File

@ -154,6 +154,7 @@ function usage() {
-V, --version "$"Print version number, then exit"" -V, --version "$"Print version number, then exit""
-q, --quiet "$"Run in quiet mode"" -q, --quiet "$"Run in quiet mode""
-r, --colorize "$"Enable the colorized output"" -r, --colorize "$"Enable the colorized output""
--colorize-theme "$"Select the theme to be used for the colorized output""
-D, --debug "$"Run in debugging mode (very verbose output)"" -D, --debug "$"Run in debugging mode (very verbose output)""
"$"Samples"": "$"Samples"":
@ -196,7 +197,7 @@ server-download:,server-upload:,server:,\
changelog:,nosrpm,norpm,list-check,update-autobuildreq,\ changelog:,nosrpm,norpm,list-check,update-autobuildreq,\
force-update,force-build,force-install,force-download,force,\ force-update,force-build,force-install,force-download,force,\
ignore-test:,clear,format,log,rebuild,root:,\ ignore-test:,clear,format,log,rebuild,root:,\
debug,quiet,colorize,help,version,\ debug,quiet,colorize,colorize-theme:,help,version,\
frontend_opts: \ frontend_opts: \
-n "$me" -- "$@"` -n "$me" -- "$@"`
[ $? = 0 ] || exit 1 [ $? = 0 ] || exit 1
@ -278,6 +279,8 @@ while :; do
let "verbose = 0" ;; let "verbose = 0" ;;
-r|--colorize) -r|--colorize)
let "colorize = 1" ;; let "colorize = 1" ;;
--colorize-theme)
colorize_theme="$2"; shift ;;
-h|--help) -h|--help)
usage 0 ;; usage 0 ;;
-V|--version) -V|--version)
@ -310,7 +313,9 @@ fi
[ "$logging" = "1" ] && let "colorize = 0" [ "$logging" = "1" ] && let "colorize = 0"
[ "$colorize" = "1" ] && notify.enable_colors || notify.disable_colors [ "$colorize" = "1" ] && notify.enable_colors "$colorize_theme" \
|| notify.disable_colors
# default values for non mandatory configuration variables # default values for non mandatory configuration variables
[ "$logging_dir" ] || logging_dir="${tmppath_dir:-/var/tmp}/@package@" [ "$logging_dir" ] || logging_dir="${tmppath_dir:-/var/tmp}/@package@"

View File

@ -121,6 +121,7 @@ function usage() {
-V, --version "$"Print version number, then exit"" -V, --version "$"Print version number, then exit""
-q, --quiet "$"Run in quiet mode"" -q, --quiet "$"Run in quiet mode""
-r, --colorize "$"Enable the colorized output"" -r, --colorize "$"Enable the colorized output""
--colorize-theme "$"Select the theme to be used for the colorized output""
-D, --debug "$"Run in debugging mode (very verbose output)"" -D, --debug "$"Run in debugging mode (very verbose output)""
"$"Samples"": "$"Samples"":
@ -162,7 +163,7 @@ exec_options=`LC_ALL=C getopt \
--long \ --long \
source:,pck-name:,pck-version:,type:,output:,changelog:,\ source:,pck-name:,pck-version:,type:,output:,changelog:,\
git-branch:,preserve-dot-git,\ git-branch:,preserve-dot-git,\
debug,quiet,colorize,help,version,\ debug,quiet,colorize,colorize-theme:,help,version,\
frontend_opts: \ frontend_opts: \
-n "$me" -- "$@"` -n "$me" -- "$@"`
[ $? = 0 ] || exit 1 [ $? = 0 ] || exit 1
@ -197,6 +198,8 @@ while :; do
let "verbose = 0" ;; let "verbose = 0" ;;
-r|--colorize) -r|--colorize)
let "colorize = 1" ;; let "colorize = 1" ;;
--colorize-theme)
colorize_theme="$2"; shift ;;
-h|--help) -h|--help)
usage 0 ;; usage 0 ;;
-V|--version) -V|--version)
@ -207,7 +210,8 @@ while :; do
shift shift
done done
[ "$colorize" = "1" ] && notify.enable_colors || notify.disable_colors [ "$colorize" = "1" ] && notify.enable_colors "$colorize_theme" \
|| notify.disable_colors
for arg in $@; do for arg in $@; do
notify.error $"unrecognized option"" -- \`$arg'" notify.error $"unrecognized option"" -- \`$arg'"

View File

@ -58,6 +58,9 @@ msgstr "Non stampa alcun dettaglio delle operazioni in esecuzione"
msgid "Enable the colorized output" msgid "Enable the colorized output"
msgstr "Abilita l'output colorato" msgstr "Abilita l'output colorato"
msgid "Select the theme to be used for the colorized output"
msgstr "Seleziona il tema da usare per generare l'output colorato"
msgid "Run in debugging mode (very verbose output)" msgid "Run in debugging mode (very verbose output)"
msgstr "Attiva la modalità di debugging (output prolisso)" msgstr "Attiva la modalità di debugging (output prolisso)"

View File

@ -69,6 +69,9 @@ msgstr "Non stampa alcun dettaglio delle operazioni in esecuzione"
msgid "Enable the colorized output" msgid "Enable the colorized output"
msgstr "Abilita l'output colorato" msgstr "Abilita l'output colorato"
msgid "Select the theme to be used for the colorized output"
msgstr "Seleziona il tema da usare per generare l'output colorato"
msgid "Run in debugging mode (very verbose output)" msgid "Run in debugging mode (very verbose output)"
msgstr "Attiva la modalità di debugging (output prolisso)" msgstr "Attiva la modalità di debugging (output prolisso)"

View File

@ -21,3 +21,6 @@ msgstr "questo script richiede bash versione 2 o superiore"
msgid "no message" msgid "no message"
msgstr "nessun messaggio" msgstr "nessun messaggio"
msgid "unknown color theme \\`\\$colorize_theme': colors will be disabled"
msgstr "tema di colori sconosciuto \\`\\$colorize_theme': output con colori disabilitato"

View File

@ -66,6 +66,9 @@ msgstr "Non stampa alcun dettaglio delle operazioni in esecuzione"
msgid "Enable the colorized output" msgid "Enable the colorized output"
msgstr "Abilita l'output colorato" msgstr "Abilita l'output colorato"
msgid "Select the theme to be used for the colorized output"
msgstr "Seleziona il tema da usare per generare l'output colorato"
msgid "Run in debugging mode (very verbose output)" msgid "Run in debugging mode (very verbose output)"
msgstr "Attiva la modalità di debugging (output prolisso)" msgstr "Attiva la modalità di debugging (output prolisso)"

View File

@ -183,6 +183,9 @@ msgstr "Non stampa alcun dettaglio delle operazioni in esecuzione"
msgid "Enable the colorized output" msgid "Enable the colorized output"
msgstr "Abilita l'output colorato" msgstr "Abilita l'output colorato"
msgid "Select the theme to be used for the colorized output"
msgstr "Seleziona il tema da usare per generare l'output colorato"
msgid "Run in debugging mode (very verbose output)" msgid "Run in debugging mode (very verbose output)"
msgstr "Attiva la modalità di debugging (output prolisso)" msgstr "Attiva la modalità di debugging (output prolisso)"

View File

@ -103,6 +103,9 @@ msgstr "Non stampa alcun dettaglio delle operazioni in esecuzione"
msgid "Enable the colorized output" msgid "Enable the colorized output"
msgstr "Abilita l'output colorato" msgstr "Abilita l'output colorato"
msgid "Select the theme to be used for the colorized output"
msgstr "Seleziona il tema da usare per generare l'output colorato"
msgid "Run in debugging mode (very verbose output)" msgid "Run in debugging mode (very verbose output)"
msgstr "Attiva la modalità di debugging (output prolisso)" msgstr "Attiva la modalità di debugging (output prolisso)"