X-Git-Url: http://git.tuebingen.mpg.de/?p=gsu.git;a=blobdiff_plain;f=funcs%2Fgsu;h=e7a49feaf2a084def529e9ba95512922d050437a;hp=d78233ed3a8e2dab0fbaa092006f5ecc167391ff;hb=36395c9a656df7f1834d0840c07662885adcf52b;hpb=33ed4a27159aae243c71991fb71c2948cd1042e0 diff --git a/funcs/gsu b/funcs/gsu index d78233e..e7a49fe 100644 --- a/funcs/gsu +++ b/funcs/gsu @@ -1,6 +1,6 @@ #!/bin/bash # gsu -- the global subcommand utility -# (C) 2006-2009 Andre Noll +# (C) 2006-2010 Andre Noll _gsu_init_errors() { @@ -8,14 +8,13 @@ _gsu_init_errors() GSU_SUCCESS success E_GSU_BAD_COMMAND invalid command E_GSU_NOT_A_NUMBER not a number -E_GSU_SOURCE error in config file -E_GSU_CONFIG bad/missing config file option E_GSU_BAD_CONFIG_VAR invalid config variable E_GSU_NEED_VALUE value required but not given E_GSU_BAD_BOOL bad value for boolian option E_GSU_BAD_OPTION_TYPE invalid option type E_GSU_BAD_ARG_COUNT invalid number of arguments -E_NO_DEFAULT missing default value +E_GSU_EDITOR failed to execute editor +E_GSU_MKDIR failed to create directory $gsu_errors " local a b i=0 @@ -171,13 +170,27 @@ export -f _gsu_print_available_commands export gsu_prefs_txt=" Print the current preferences. -Usage: prefs +Usage: prefs [-e] -Print out a list of all cmt config variables, together with their current value -and the default value." +If -e is given, the config file is opened with the default editor. Without +options, the command prints out a list of all cmt config variables, together +with their current value and the default value." _com_prefs() { - local i + local i conf="${gsu_config_file:=$HOME/.$gsu_name.rc}" + + if [[ "$1" = "-e" ]]; then + ret=-$E_GSU_MKDIR + result="${conf%/*}" + mkdir -p "$result" + [[ $? -ne 0 ]] && return + ret=-$E_GSU_EDITOR + result="${EDITOR:-vi}" + "$result" "$conf" + [[ $? -ne 0 ]] && return + ret=$GSU_SUCCESS + return + fi for ((i=0; i < ${#gsu_options[@]}; i++)); do local name= option_type= default_value= required= @@ -387,17 +400,6 @@ export -f _gsu_check_options gsu() { local i - - gsu_is_a_number "${BASH_VERSINFO[0]}" - if [[ $ret -lt 0 ]]; then - gsu_msg "fatal: failed to determine bash version" - exit 1 - fi - - if [[ "${BASH_VERSINFO[0]}" -lt 4 ]]; then - gsu_msg "fatal: This script requires at least bash 4.0" - exit 1 - fi _gsu_self="$(basename $0)" gsu_name="${gsu_name:=$_gsu_self}" gsu_config_var_prefix="${gsu_config_var_prefix:=$gsu_name}"