From 5f34b094d3c13978e1689e73d679190a8f0cdcbb Mon Sep 17 00:00:00 2001 From: Erik Arvstedt Date: Thu, 14 Jan 2021 13:24:15 +0100 Subject: [PATCH] onionAddresses: improve script - use -e to check for existence of /var/lib/tor/state, use shorter polling interval - clear existing dataDir contents to avoid accumulating obsolete data - use concatMapStrings instead of foldl' --- modules/onion-addresses.nix | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/modules/onion-addresses.nix b/modules/onion-addresses.nix index e35e520..905f73d 100644 --- a/modules/onion-addresses.nix +++ b/modules/onion-addresses.nix @@ -44,32 +44,27 @@ in { CapabilityBoundingSet = "CAP_CHOWN CAP_FSETID CAP_SETFCAP CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_IPC_OWNER"; }; script = '' - # wait until tor is up - until ls -l /var/lib/tor/state; do sleep 1; done + # Wait until tor is up + until [[ -e /var/lib/tor/state ]]; do sleep 0.1; done cd ${dataDir} + rm -rf * - # Create directory for every user and set permissions - ${ builtins.foldl' - (x: user: x + - '' + ${concatMapStrings + (user: '' mkdir -p -m 0700 ${user} chown ${user} ${user} - # Copy onion hostnames into the user's directory - ${ builtins.foldl' - (x: onion: x + - '' - ONION_FILE=/var/lib/tor/onion/${onion}/hostname - if [ -e "$ONION_FILE" ]; then - cp $ONION_FILE ${user}/${onion} - chown ${user} ${user}/${onion} - fi - '') - "" - (builtins.getAttr user cfg.access) - } - '') - "" + ${concatMapStrings + (service: '' + onionFile=/var/lib/tor/onion/${service}/hostname + if [[ -e $onionFile ]]; then + cp $onionFile ${user}/${service} + chown ${user} ${user}/${service} + fi + '') + cfg.access.${user} + } + '') (builtins.attrNames cfg.access) } '';