From e37d6f9f6c8cad955ea05e7d4ca87b87424c95a0 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Sat, 19 Oct 2024 14:46:56 +1000 Subject: [PATCH] nixpkgs-update: various - remove response escaping - add NIXPKGS_UPDATE_BIN, WORKER_NAME to worker env --- hosts/build02/nixpkgs-update.nix | 3 +++ hosts/build02/worker.bash | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/hosts/build02/nixpkgs-update.nix b/hosts/build02/nixpkgs-update.nix index 8e9db21..cc0533d 100644 --- a/hosts/build02/nixpkgs-update.nix +++ b/hosts/build02/nixpkgs-update.nix @@ -56,6 +56,9 @@ let StandardOutput = "journal"; }; + environment.NIXPKGS_UPDATE_BIN = nixpkgs-update-bin; + environment.WORKER_NAME = name; + script = builtins.readFile ./worker.bash; }; diff --git a/hosts/build02/worker.bash b/hosts/build02/worker.bash index d314e1e..713a252 100644 --- a/hosts/build02/worker.bash +++ b/hosts/build02/worker.bash @@ -1,14 +1,14 @@ mkdir -p "$LOGS_DIRECTORY/~workers/" # This is for public logs at nixpkgs-update-logs.nix-community.org/~workers -exec > >(rotatelogs -eD "$LOGS_DIRECTORY"'/~workers/%Y-%m-%d-${name}.stdout.log' 86400) -exec 2> >(rotatelogs -eD "$LOGS_DIRECTORY"'/~workers/%Y-%m-%d-${name}.stderr.log' 86400 >&2) +exec > >(rotatelogs -eD "$LOGS_DIRECTORY/~workers/%Y-%m-%d-${WORKER_NAME}.stdout.log" 86400) +exec 2> >(rotatelogs -eD "$LOGS_DIRECTORY/~workers/%Y-%m-%d-${WORKER_NAME}.stderr.log" 86400 >&2) socket=/run/nixpkgs-update-supervisor/work.sock function run-nixpkgs-update { exit_code=0 set -x - timeout 6h ${nixpkgs-update-bin} update-batch --pr --outpaths --nixpkgs-review "$attr_path $payload" || exit_code=$? + timeout 6h "${NIXPKGS_UPDATE_BIN}" update-batch --pr --outpaths --nixpkgs-review "$attr_path $payload" || exit_code=$? set +x if [ $exit_code -eq 124 ]; then echo "Update was interrupted because it was taking too long." @@ -28,7 +28,7 @@ while true; do sleep 60 ;; JOB\ *) - read -r attr_path payload <<< "''${response#JOB }" + read -r attr_path payload <<< "${response#JOB }" # If one worker is initializing the nixpkgs clone, the other will # try to use the incomplete clone, consuming a bunch of jobs and # throwing them away. So we use a crude locking mechanism to