summaryrefslogtreecommitdiff
path: root/src/basic/rm-rf.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2016-04-08 18:54:05 +0200
committerLennart Poettering <lennart@poettering.net>2016-04-12 13:43:33 +0200
commitd2120590ffdcc041f098667355ca3db5161d25d9 (patch)
tree9e5b921b5023e7eb40f7812161f285c49da45039 /src/basic/rm-rf.h
parent815b09d39b74a9ece31b7d7ef45f8f00784b8d8b (diff)
tests: override XDG_RUNTIME_DIR where we use the user runtime dir
We don#t really support systems where XDG_RUNTIME_DIR is not supported for systemd --user. Hence, let's always set our own XDG_RUNTIME_DIR for tests that involve systemd --user, so that we know it is set, and that it doesn't polute the user's actual runtime dir.
Diffstat (limited to 'src/basic/rm-rf.h')
-rw-r--r--src/basic/rm-rf.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/basic/rm-rf.h b/src/basic/rm-rf.h
index 6d03268919..40b5b527d5 100644
--- a/src/basic/rm-rf.h
+++ b/src/basic/rm-rf.h
@@ -30,3 +30,12 @@ typedef enum RemoveFlags {
int rm_rf_children(int fd, RemoveFlags flags, struct stat *root_dev);
int rm_rf(const char *path, RemoveFlags flags);
+
+/* Useful for usage with _cleanup_(), destroys a directory and frees the pointer */
+static inline void rm_rf_and_free(char *p) {
+ if (!p)
+ return;
+ (void) rm_rf(p, REMOVE_ROOT);
+ free(p);
+}
+DEFINE_TRIVIAL_CLEANUP_FUNC(char*, rm_rf_and_free);