summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2007-02-22 11:09:49 +0000
committerJonas Smedegaard <dr@jones.dk>2007-02-22 11:09:49 +0000
commit55b52797467cc18187d02e534be4d8ee578bdda1 (patch)
tree9fddd1a72acb88bc8ff3f129158347add4fabdb0
parent89c9181518a5fa02323d1ff19c84ca0a9abdffca (diff)
Check that parent of target dir exists (and optionally force-create).
-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