diff options
author | Hans-Joachim Lankenau <hjs@openoffice.org> | 2000-10-10 16:41:22 +0000 |
---|---|---|
committer | Hans-Joachim Lankenau <hjs@openoffice.org> | 2000-10-10 16:41:22 +0000 |
commit | a43d7188ae8ec21c7437073da70c27e2a8ade8e6 (patch) | |
tree | e35840dce0b9fbdc27966327751184f6feb0b2a2 | |
parent | f6f0889c8ece7cbb09cf105667d3c03cf3cd8f2f (diff) |
substitute for mkdir -p
-rwxr-xr-x | solenv/bin/mkdir.pl | 52 |
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 ; + } ; |