summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Joachim Lankenau <hjs@openoffice.org>2000-10-10 16:41:22 +0000
committerHans-Joachim Lankenau <hjs@openoffice.org>2000-10-10 16:41:22 +0000
commita43d7188ae8ec21c7437073da70c27e2a8ade8e6 (patch)
treee35840dce0b9fbdc27966327751184f6feb0b2a2
parentf6f0889c8ece7cbb09cf105667d3c03cf3cd8f2f (diff)
substitute for mkdir -p
-rwxr-xr-xsolenv/bin/mkdir.pl52
1 files changed, 52 insertions, 0 deletions
diff --git a/solenv/bin/mkdir.pl b/solenv/bin/mkdir.pl
new file mode 100755
index 000000000000..4d4a37d6b3be
--- /dev/null
+++ b/solenv/bin/mkdir.pl
@@ -0,0 +1,52 @@
+: # -*- perl -*-
+eval 'exec perl -wS $0 ${1+"$@"}'
+ if 0;
+#
+# mkdir - a perl script to substitute mkdir -p
+# accepts "/", ":", and "\" as delimiters of subdirectories
+# options -p (for compatibility)
+# -mode mode
+#
+# Copyright (c) 2000 Sun Microsystems, Inc.
+
+$MODE = 00777 ;
+
+while ( $#ARGV > 0 ) {
+ if ( $ARGV[0] eq "-mode" ) {
+ $MODE = oct $ARGV[1] ;
+ shift @ARGV ;
+ } ;
+ shift @ARGV ;
+ } ;
+
+$ARGV[0] =~ s?\\|:?/?g ;
+@SUBDIRS = split "/", $ARGV[0] ;
+
+# absolute path UNIX
+if ( $SUBDIRS[0] eq "" ) {
+ chdir '/' ;
+ shift @SUBDIRS ;
+}
+# absolute path WINDOWS
+if ( $#SUBDIRS > 1 ) {
+ if ( $SUBDIRS[1] eq "" ) {
+ if ( $SUBDIRS[0] =~ /\w/ ) {
+ chdir "$SUBDIRS[0]:\\" ;
+ shift @SUBDIRS ;
+ shift @SUBDIRS ;
+ } ;
+ } ;
+}
+
+
+while (@SUBDIRS) {
+ if ( -e $SUBDIRS[0] ) {
+ if ( ! -d $SUBDIRS[0] ) {
+ die "file exists\n" }
+ }
+ else {
+ mkdir $SUBDIRS[0], $MODE or die "Can't create directory $SUBDIRS[0]"
+ }
+ chdir $SUBDIRS[0] or die "Can't cd to $SUBDIRS[0]" ;
+ shift @SUBDIRS ;
+ } ;