]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/basic/fileio.c
fileio: add new WRITE_STRING_FILE_MKDIR_0755 flag for mkdir'ing parent
[thirdparty/systemd.git] / src / basic / fileio.c
index 16034fb9e8a2d08a7813c6728ced5c86afc9ed95..4c18212668eddc4a7c466bcda787d3ae20ef5471 100644 (file)
@@ -21,6 +21,7 @@
 #include "log.h"
 #include "macro.h"
 #include "missing.h"
+#include "mkdir.h"
 #include "parse-util.h"
 #include "path-util.h"
 #include "stdio-util.h"
@@ -174,6 +175,12 @@ int write_string_file_ts(
         /* We don't know how to verify whether the file contents was already on-disk. */
         assert(!((flags & WRITE_STRING_FILE_VERIFY_ON_FAILURE) && (flags & WRITE_STRING_FILE_SYNC)));
 
+        if (flags & WRITE_STRING_FILE_MKDIR_0755) {
+                r = mkdir_parents(fn, 0755);
+                if (r < 0)
+                        return r;
+        }
+
         if (flags & WRITE_STRING_FILE_ATOMIC) {
                 assert(flags & WRITE_STRING_FILE_CREATE);