summaryrefslogtreecommitdiff
path: root/savelocaltweaks
diff options
context:
space:
mode:
Diffstat (limited to 'savelocaltweaks')
-rwxr-xr-xsavelocaltweaks22
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