feat(ops/terraform/deploy-nixos): support argstr map
This allows setting argstr to a map of keys and values. We use jq to construct "--argstr k v" arguments, which are passed to nix-instantiate. Change-Id: I720a597ca2276364bc7005c156064d938f143041 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11141 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
a9db1455f5
commit
35f636b684
1 changed files with 3 additions and 3 deletions
|
@ -10,12 +10,12 @@ set -ueo pipefail
|
||||||
|
|
||||||
# Load input variables from Terraform. jq's @sh format takes care of
|
# Load input variables from Terraform. jq's @sh format takes care of
|
||||||
# escaping.
|
# escaping.
|
||||||
eval "$(jq -r '@sh "attrpath=\(.attrpath) && entrypoint=\(.entrypoint)"')"
|
eval "$(jq -r '@sh "attrpath=\(.attrpath) && entrypoint=\(.entrypoint) && argstr=\((.argstr // {}) | to_entries | map ("--argstr", .key, .value) | join(" "))"')"
|
||||||
|
|
||||||
# Evaluate the system derivation.
|
# Evaluate the system derivation.
|
||||||
[[ -z "$entrypoint" ]] && entrypoint=$(git rev-parse --show-toplevel)
|
[[ -z "$entrypoint" ]] && entrypoint=$(git rev-parse --show-toplevel)
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2086,SC2154
|
||||||
system_drv=$(nix-instantiate -A "${attrpath}" "${entrypoint}")
|
system_drv=$(nix-instantiate -A "${attrpath}" "${entrypoint}" ${argstr})
|
||||||
|
|
||||||
# Return system derivation back to Terraform.
|
# Return system derivation back to Terraform.
|
||||||
jq -n --arg drv "$system_drv" '{"drv":$drv}'
|
jq -n --arg drv "$system_drv" '{"drv":$drv}'
|
||||||
|
|
Loading…
Reference in a new issue