Revision e71aab1c02e6a47ec56b1e341e80d09797d3d4de authored by Rich Salz on 18 November 2015, 21:58:40 UTC, committed by Rich Salz on 18 November 2015, 21:58:40 UTC
Reviewed-by: Steve Marquess <marquess@openssl.com>
1 parent b77390a
Raw File
mkdir-p.pl
#!/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) {
  $arg =~ tr|\\|/|;
  &do_mkdir_p($arg);
}


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

  $dir =~ s|/*\Z(?!\n)||s;

  if (-d $dir) {
    return;
  }

  if ($dir =~ m|[^/]/|s) {
    local($parent) = $dir;
    $parent =~ s|[^/]*\Z(?!\n)||s;

    do_mkdir_p($parent);
  }

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