#! /usr/bin/env perl # Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy # in the file LICENSE in the source distribution or at # https://www.openssl.org/source/license.html # 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); } unless (mkdir($dir, 0777)) { local($err) = $!; if (-d $dir) { # We raced against another instance doing the same thing. return; } die "Cannot create directory $dir: $err\n"; } print "created directory `$dir'\n"; }