summaryrefslogtreecommitdiffstats
path: root/krebs/3modules/permown.nix
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2019-04-18 20:28:06 +0200
committerlassulus <lassulus@lassul.us>2019-04-18 20:28:06 +0200
commit6c719f03c1a5533b43957d3039b4aed5f5bd8b42 (patch)
tree43e82adee9da4bde3c726b43224530c5719b12e2 /krebs/3modules/permown.nix
parentadc7ca2dc7ada2e34362a301f7d7898bec2f4991 (diff)
parentc082c8d62be63c7acf31de37c4b87a5b5d8118fa (diff)
Merge remote-tracking branch 'ni/master'
Diffstat (limited to 'krebs/3modules/permown.nix')
-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 0f2ba86c8..63adb2236 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;