summaryrefslogtreecommitdiffstats
path: root/c/build-tools/scripts/unlock-directory.in
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--c/build-tools/scripts/unlock-directory.in41
1 files changed, 41 insertions, 0 deletions
diff --git a/c/build-tools/scripts/unlock-directory.in b/c/build-tools/scripts/unlock-directory.in
new file mode 100644
index 0000000000..c63ceff881
--- /dev/null
+++ b/c/build-tools/scripts/unlock-directory.in
@@ -0,0 +1,41 @@
+#!@KSH@
+#
+# $Id$
+#
+# Unlock a directory processed by lock_directory
+#
+
+# is a particular command available on this machine?
+#
+cmd_avail()
+{
+ set -- `type $1 2>&1`
+ if [ "$2" = "not" -a "$3" = "found" ] || [ "$3" = "not" -a "$4" = "found" ]
+ then
+ return 1
+ else
+ return 0
+ fi
+}
+
+unlock_directory() {
+ ul_dir=$1/. # get any symlink out of the way using '.'
+ if [ -d $ul_dir ]
+ then
+ find $ul_dir -type d ! -perm -0222 -print | $XARGS -t chmod +w
+ fi
+}
+
+# Use gnu xargs if available; faster, more reliable in general
+XARGS=xargs
+cmd_avail gxargs && XARGS=gxargs
+
+for dir
+do
+ unlock_directory $dir
+done
+
+# Local Variables: ***
+# mode:ksh ***
+# End: ***
+