X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcondition.c;h=61812c25705cfec2ca6d6f0675921616b2d13790;hp=1dce276c00575004f48ecde1ff40de576a8ed771;hb=2b583ce6576d4a074ce6f1570b3e60b65c64ae7d;hpb=37f85e66e8f396b6f758e063531b95531aef628e diff --git a/src/condition.c b/src/condition.c index 1dce276c0..61812c257 100644 --- a/src/condition.c +++ b/src/condition.c @@ -134,6 +134,14 @@ bool condition_test(Condition *c) { case CONDITION_PATH_EXISTS: return (access(c->parameter, F_OK) >= 0) == !c->negate; + case CONDITION_PATH_IS_DIRECTORY: { + struct stat st; + + if (lstat(c->parameter, &st) < 0) + return !c->negate; + return S_ISDIR(st.st_mode) == !c->negate; + } + case CONDITION_DIRECTORY_NOT_EMPTY: { int k;