summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--krebs/3modules/permown.nix17
1 files changed, 15 insertions, 2 deletions
diff --git a/krebs/3modules/permown.nix b/krebs/3modules/permown.nix
index 0f2ba86c..63adb223 100644
--- a/krebs/3modules/permown.nix
+++ b/krebs/3modules/permown.nix
@@ -65,17 +65,30 @@ with import <stockholm/lib>;
find "$ROOT_PATH" -type d -exec chmod "$DIR_MODE" {} +
find "$ROOT_PATH" -type f -exec chmod "$FILE_MODE" {} +
- inotifywait -mrq -e CREATE --format %w%f "$ROOT_PATH" |
+ paths=/tmp/paths
+ rm -f "$paths"
+ mkfifo "$paths"
+
+ inotifywait -mrq -e CREATE --format %w%f "$ROOT_PATH" > "$paths" &
+ inotifywaitpid=$!
+
+ trap cleanup EXIT
+ cleanup() {
+ kill "$inotifywaitpid"
+ }
+
while read -r path; do
if test -d "$path"; then
+ cleanup
exec "$0" "$@"
fi
chown -h "$OWNER_GROUP" "$path"
if test -f "$path"; then
chmod "$FILE_MODE" "$path"
fi
- done
+ done < "$paths"
'';
+ PrivateTemp = true;
Restart = "always";
RestartSec = 10;
UMask = plan.umask;