mkdir-p.pl revision 160814
11590Srgrimes#!/usr/local/bin/perl 21590Srgrimes 31590Srgrimes# mkdir-p.pl 41590Srgrimes 51590Srgrimes# On some systems, the -p option to mkdir (= also create any missing parent 61590Srgrimes# directories) is not available. 71590Srgrimes 81590Srgrimesmy $arg; 91590Srgrimes 101590Srgrimesforeach $arg (@ARGV) { 111590Srgrimes $arg =~ tr|\\|/|; 121590Srgrimes &do_mkdir_p($arg); 131590Srgrimes} 141590Srgrimes 151590Srgrimes 161590Srgrimessub do_mkdir_p { 171590Srgrimes local($dir) = @_; 181590Srgrimes 191590Srgrimes $dir =~ s|/*\Z(?!\n)||s; 201590Srgrimes 211590Srgrimes if (-d $dir) { 221590Srgrimes return; 231590Srgrimes } 241590Srgrimes 251590Srgrimes if ($dir =~ m|[^/]/|s) { 261590Srgrimes local($parent) = $dir; 271590Srgrimes $parent =~ s|[^/]*\Z(?!\n)||s; 281590Srgrimes 291590Srgrimes do_mkdir_p($parent); 301590Srgrimes } 311590Srgrimes 321590Srgrimes mkdir($dir, 0777) || die "Cannot create directory $dir: $!\n"; 331590Srgrimes print "created directory `$dir'\n"; 341590Srgrimes} 351590Srgrimes