]>
Commit | Line | Data |
---|---|---|
6576774b BM |
1 | #!/usr/local/bin/perl |
2 | ||
3 | # mkdir-p.pl | |
4 | ||
5 | # On some systems, the -p option to mkdir (= also create any missing parent | |
6 | # directories) is not available. | |
7 | ||
8 | my $arg; | |
9 | ||
10 | foreach $arg (@ARGV) { | |
fbf002bb | 11 | $arg =~ tr|\\|/|; |
6576774b BM |
12 | &do_mkdir_p($arg); |
13 | } | |
14 | ||
15 | ||
16 | sub do_mkdir_p { | |
17 | local($dir) = @_; | |
18 | ||
eabea024 | 19 | $dir =~ s|/*\Z(?!\n)||s; |
6576774b BM |
20 | |
21 | if (-d $dir) { | |
22 | return; | |
23 | } | |
24 | ||
eabea024 | 25 | if ($dir =~ m|[^/]/|s) { |
6576774b | 26 | local($parent) = $dir; |
eabea024 | 27 | $parent =~ s|[^/]*\Z(?!\n)||s; |
6576774b BM |
28 | |
29 | do_mkdir_p($parent); | |
30 | } | |
31 | ||
32 | mkdir($dir, 0777) || die "Cannot create directory $dir: $!\n"; | |
eabea024 | 33 | print "created directory `$dir'\n"; |
6576774b | 34 | } |