diff options
-rwxr-xr-x | savelocaltweaks | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/savelocaltweaks b/savelocaltweaks index b1fd355..657f768 100755 --- a/savelocaltweaks +++ b/savelocaltweaks @@ -24,12 +24,22 @@ includefile="/etc/local/localtweaks.include" excludefile="/etc/local/localtweaks.exclude" extensions=".orig .old" -if [ -n "$targetdir" ] && [ -e "$targetdir" ]; then - if [ "$force" = "yes" ]; then - rm -rf "$targetdir" - else - echo >&2 "Error: Target directory exists already." - exit 1 +if [ -n "$targetdir" ]; then + targetdirparent="$(dirname "$targetdir")" + if ! [ -d "$targetdirparent" ]; then + if [ "$force" = "yes" ]; then + mkdir -p "$targetdirparent" + else + echo >&2 "Error: Parent directory for target directory does not exist." + exit 1 + fi + elif [ -e "$targetdir" ]; then + if [ "$force" = "yes" ]; then + rm -rf "$targetdir" + else + echo >&2 "Error: Target directory already exists." + exit 1 + fi fi fi |