fix apply chown permissions in parallel for large workspace

This commit is contained in:
G.J.R. Timmer
2021-07-05 00:36:51 +02:00
parent d1ae5a93d7
commit b54982550b
2 changed files with 18 additions and 2 deletions

View File

@@ -18,5 +18,20 @@ if [ -n "${SUDO_PASSWORD}" ] || [ -n "${SUDO_PASSWORD_HASH}" ]; then
fi
# permissions
chown -R abc:abc \
/config
if [ -f "/usr/bin/find" ] && [ -f "/usr/bin/xargs" ]; then
# Split workload between config and workspace
echo "setting permissions::configuration"
CORES=$(nproc --all)
find /config -maxdepth 4 -mindepth 1 -path /config/workspace -prune -false -o -type d | \
xargs --max-args=1 --max-procs=$(($CORES*2*8)) \
chown -R abc:abc
echo "setting permissions::workspace"
chown abc:abc /config/workspace
find /config/workspace -maxdepth 4 -mindepth 1 -type d | \
xargs --max-args=1 --max-procs=$(($CORES*2*16)) \
chown -R abc:abc
else
chown -R abc:abc \
/config
fi