summaryrefslogtreecommitdiff
path: root/ensure-dir.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ensure-dir.sh')
-rwxr-xr-xensure-dir.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/ensure-dir.sh b/ensure-dir.sh
new file mode 100755
index 0000000..34f03ac
--- /dev/null
+++ b/ensure-dir.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+pathname=$1
+mode=$2
+OLDIFS="${IFS}"; IFS=/; set $pathname; IFS="${OLDIFS}"
+
+case $pathname in
+ /*) partial=/; ;;
+ *) partial=""; ;;
+esac
+
+for i do
+ case i in "") continue; ;; esac
+ partial="${partial}${i}"
+ if [ ! -d ${partial} ]; then
+ mkdir ${partial} || exit 1;
+ chmod ${mode} ${partial}
+ fi
+ partial="${partial}/"
+done
+