summaryrefslogtreecommitdiffstats
path: root/util/mkdir-p.pl
blob: 2c003d6e8491369f9d49a6f0aff8fd0b3ac96849 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/local/bin/perl

# mkdir-p.pl

# On some systems, the -p option to mkdir (= also create any missing parent
# directories) is not available.

my $arg;

foreach $arg (@ARGV) {
  &do_mkdir_p($arg);
}


sub do_mkdir_p {
  local($dir) = @_;

  $dir =~ s|/*$||;

  if (-d $dir) {
    return;
  }

  if ($dir =~ /\//) {
    local($parent) = $dir;
    $parent =~ s|[^/]*$||;

    do_mkdir_p($parent);
  }

  mkdir($dir, 0777) || die "Cannot create directory $dir: $!\n";
  print "created directory $dir\n";
}