summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorYuriy Taraday <yuriy.taraday@tweag.io>2024-11-04 18:31:38 +0100
committerYuriy Taraday <yuriy.taraday@tweag.io>2024-11-07 11:46:08 +0100
commit110d49af637c3da025b6b42a0caa81c1d63b2aed (patch)
tree310e6ce8826e62b07304d089d883bdaa7f4f4137 /modules
parent158198a6e3690facf15718b24571789c0756d43a (diff)
github-runner: Fix labels for different nixpkgs versions
Changes to escapeShellArg introduced in https://github.com/NixOS/nixpkgs/pull/333744 made different versions of nixpkgs behave differently. If current nix-darwin is used with nixpkgs before that change, labels end up having labels quoted twice (see https://github.com/LnL7/nix-darwin/issues/1085), but without changes from https://github.com/LnL7/nix-darwin/pull/1055, with new nixpkgs, labels end up not quoted at all, and ShellCheck ends up complaining that commas might have been used as array item separator (see https://www.shellcheck.net/wiki/SC2054). Use the old version of escapeShellArg to always escape the list of labels and make nix-darwin work with both old and new versions of nixpkgs. Fixes https://github.com/LnL7/nix-darwin/issues/1085
Diffstat (limited to 'modules')
-rw-r--r--modules/services/github-runner/service.nix6
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/services/github-runner/service.nix b/modules/services/github-runner/service.nix
index c273f43..5d73633 100644
--- a/modules/services/github-runner/service.nix
+++ b/modules/services/github-runner/service.nix
@@ -94,6 +94,10 @@ in
script =
let
+ # https://github.com/NixOS/nixpkgs/pull/333744 introduced an inconsistency with different
+ # versions of nixpkgs. Use the old version of escapeShellArg to make sure that labels
+ # are always escaped to avoid https://www.shellcheck.net/wiki/SC2054
+ escapeShellArgAlways = string: "'${replaceStrings ["'"] ["'\\''"] (toString string)}'";
configure = pkgs.writeShellApplication {
name = "configure-github-runner-${name}";
text = /*bash*/''
@@ -104,7 +108,7 @@ in
--disableupdate
--work ${escapeShellArg workDir}
--url ${escapeShellArg cfg.url}
- --labels "${escapeShellArg (concatStringsSep "," cfg.extraLabels)}"
+ --labels ${escapeShellArgAlways (concatStringsSep "," cfg.extraLabels)}
${optionalString (cfg.name != null ) "--name ${escapeShellArg cfg.name}"}
${optionalString cfg.replace "--replace"}
${optionalString (cfg.runnerGroup != null) "--runnergroup ${escapeShellArg cfg.runnerGroup}"}