#! /bin/bash # # Basic tests for types creating directories # set -e set -x rm -fr /tmp/{d,D,e} mkdir /tmp/{d,D,e} # # 'd' # mkdir /tmp/d/2 chmod 777 /tmp/d/2 systemd-tmpfiles --create - <<EOF d /tmp/d/1 0755 daemon daemon - - d /tmp/d/2 0755 daemon daemon - - EOF test -d /tmp/d/1 test $(stat -c %U:%G:%a /tmp/d/1) = "daemon:daemon:755" test -d /tmp/d/2 test $(stat -c %U:%G:%a /tmp/d/2) = "daemon:daemon:755" # # 'D' # mkdir /tmp/D/2 chmod 777 /tmp/D/2 touch /tmp/D/2/foo systemd-tmpfiles --create - <<EOF D /tmp/D/1 0755 daemon daemon - - D /tmp/D/2 0755 daemon daemon - - EOF test -d /tmp/D/1 test $(stat -c %U:%G:%a /tmp/D/1) = "daemon:daemon:755" test -d /tmp/D/2 test $(stat -c %U:%G:%a /tmp/D/2) = "daemon:daemon:755" systemd-tmpfiles --remove - <<EOF D /tmp/D/2 0755 daemon daemon - - EOF # the content of '2' should be removed test "$(echo /tmp/D/2/*)" = "/tmp/D/2/*" # # 'e' # mkdir -p /tmp/e/2/{d1,d2} chmod 777 /tmp/e/2 chmod 777 /tmp/e/2/d* systemd-tmpfiles --create - <<EOF e /tmp/e/1 0755 daemon daemon - - e /tmp/e/2/* 0755 daemon daemon - - EOF ! test -d /tmp/e/1 test -d /tmp/e/2 test $(stat -c %U:%G:%a /tmp/e/2) = "root:root:777" test -d /tmp/e/2/d1 test $(stat -c %U:%G:%a /tmp/e/2/d1) = "daemon:daemon:755" test -d /tmp/e/2/d2 test $(stat -c %U:%G:%a /tmp/e/2/d2) = "daemon:daemon:755" # 'e' operates on directories only mkdir -p /tmp/e/3/{d1,d2} chmod 777 /tmp/e/3 chmod 777 /tmp/e/3/d* touch /tmp/e/3/f1 chmod 644 /tmp/e/3/f1 ! systemd-tmpfiles --create - <<EOF e /tmp/e/3/* 0755 daemon daemon - - EOF # the directories should have been processed although systemd-tmpfiles failed # previously due to the presence of a file. test -d /tmp/e/3/d1 test $(stat -c %U:%G:%a /tmp/e/3/d1) = "daemon:daemon:755" test -d /tmp/e/3/d2 test $(stat -c %U:%G:%a /tmp/e/3/d2) = "daemon:daemon:755" test -f /tmp/e/3/f1 test $(stat -c %U:%G:%a /tmp/e/3/f1) = "root:root:644"