[arch-projects] [MKINITCPIO][PATCH 4/4] Fix colors display in some options
Dave Reisner
d at falconindy.com
Mon Feb 4 13:24:29 EST 2013
On Mon, Feb 04, 2013 at 06:44:02PM +0100, Sébastien Luttringer wrote:
> Colors initialization was called after arg parsing. This disallow error messages
> and options called directly from arg parser to use colors.
> By example, call `mkinitcpio -k toto' or `mkinitcpio -L'.
>
> This patch initialize colors when terminal is able to support it but disable it
> if users don't wants it (with -n).
>
> Signed-off-by: Sébastien Luttringer <seblu at seblu.net>
> ---
> functions | 4 ++++
> mkinitcpio | 11 ++++++-----
> 2 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/functions b/functions
> index 4df91bc..d58a71a 100644
> --- a/functions
> +++ b/functions
> @@ -693,4 +693,8 @@ try_enable_color() {
> fi
> }
>
> +disable_colors() {
> + unset _color_none _color_bold _color_blue _color_green _color_red _color_yellow
You can inline this and simply call:
unset "${!_color_@}"
The joy of having some semblance of namespacing for variables...
> +}
> +
> # vim: set ft=sh ts=4 sw=4 et:
> diff --git a/mkinitcpio b/mkinitcpio
> index fb07001..dca3a06 100755
> --- a/mkinitcpio
> +++ b/mkinitcpio
> @@ -357,6 +357,10 @@ parseopts "$_opt_short" "${_opt_long[@]}" -- "$@" || exit 1
> set -- "${OPTRET[@]}"
> unset _opt_short _opt_long OPTRET
>
> +if [[ -t 1 ]]; then
> + try_enable_color
> +fi
> +
> while :; do
> case $1 in
> # --add remains for backwards compat
> @@ -394,7 +398,8 @@ while :; do
> shift
> _optpreset=("$1") ;;
> -n|--nocolor)
> - _optcolor=0 ;;
> + _optcolor=0
> + disable_colors ;;
> -v|--verbose)
> _optquiet=0 ;;
> -S|--skiphooks)
> @@ -427,10 +432,6 @@ while :; do
> shift
> done
>
> -if [[ -t 1 ]] && (( _optcolor )); then
> - try_enable_color
> -fi
> -
> # insist that /proc and /dev be mounted (important for chroots)
> # NOTE: avoid using mountpoint for this -- look for the paths that we actually
> # use in mkinitcpio. Avoids issues like FS#26344.
> --
> Sébastien "Seblu" Luttringer
>
More information about the arch-projects
mailing list