Add directory creation
authorRaphaël Gertz <git@rapsys.eu>
Wed, 1 Mar 2017 10:02:57 +0000 (11:02 +0100)
committerRaphaël Gertz <git@rapsys.eu>
Wed, 1 Mar 2017 10:02:57 +0000 (11:02 +0100)
letscron

index 2a68110..e315a42 100755 (executable)
--- a/letscron
+++ b/letscron
@@ -23,8 +23,9 @@ use warnings;
 use filetest 'access';
 
 # Load dependancies
-use Carp qw(carp);
+use Carp qw(carp confess);
 use DateTime;
+use File::Path qw(make_path);
 use File::stat qw(stat);
 use File::Spec;
 use File::Slurp qw(read_file write_file);
@@ -91,6 +92,19 @@ foreach (@{$config->{certificates}}) {
                next;
        }
 
+       # Check that key directory exists
+       if (! -d KEY_DIR) {
+               # Create all paths
+               make_path(KEY_DIR, {error => \my $err});
+               if (@$err) {
+                       map {
+                               my ($file, $msg) = %$_;
+                               carp ($file eq '' ? '' : $file.': ').$msg if ($debug);
+                       } @$err;
+                       confess 'make_path failed';
+               }
+       }
+
        # Unlink if is a symlink
        if (-l KEY_DIR.DS.SERVER_KEY) {
                unless(unlink(KEY_DIR.DS.SERVER_KEY)) {