gsu: com_prefs -e fixes.
[gsu.git] / funcs / gsu
index b873ad9386b872f4a98bdd731a1d8495b04e06c0..f53671774a36e5e4054ad227143f2ce0136b4071 100644 (file)
--- a/funcs/gsu
+++ b/funcs/gsu
@@ -14,6 +14,7 @@ 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_GSU_EDITOR                   failed to execute editor
+E_GSU_MKDIR                    failed to create directory
 $gsu_errors
 "
        local a b i=0
@@ -179,9 +180,14 @@ _com_prefs()
        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