add library.sh with retry function
parent
1f288d223e
commit
d9c0821e76
85
flake.nix
85
flake.nix
|
@ -36,35 +36,60 @@
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
packages.${system} = lib.attrsets.listToAttrs (map
|
packages.${system} = lib.attrsets.listToAttrs
|
||||||
(a@{ name, ... }: lib.attrsets.nameValuePair name (makeTestProgram a))
|
(
|
||||||
[
|
(map
|
||||||
{
|
(a@{ name, ... }: lib.attrsets.nameValuePair name (makeTestProgram a))
|
||||||
name = "query-minimum-services";
|
[
|
||||||
script = ./query-services-state.sh;
|
{
|
||||||
env-vars = [{
|
name = "query-minimum-services";
|
||||||
name = "EXPECTED_RESPONSE_FILE";
|
script = ./query-services-state.sh;
|
||||||
value = ./minimal-services-expected-response.json;
|
env-vars = [{
|
||||||
}];
|
name = "EXPECTED_RESPONSE_FILE";
|
||||||
}
|
value = ./minimal-services-expected-response.json;
|
||||||
{
|
}];
|
||||||
name = "query-all-services";
|
}
|
||||||
script = ./query-services-state.sh;
|
{
|
||||||
env-vars = [{
|
name = "query-all-services";
|
||||||
name = "EXPECTED_RESPONSE_FILE";
|
script = ./query-services-state.sh;
|
||||||
value = ./all-services-expected-response.json;
|
env-vars = [{
|
||||||
}];
|
name = "EXPECTED_RESPONSE_FILE";
|
||||||
}
|
value = ./all-services-expected-response.json;
|
||||||
{
|
}];
|
||||||
name = "enable-service";
|
}
|
||||||
script = ./enable-service.sh;
|
{
|
||||||
env-vars = [ ];
|
name = "enable-service";
|
||||||
}
|
script = ./enable-service.sh;
|
||||||
{
|
env-vars = [ ];
|
||||||
name = "nixos-rebuild";
|
}
|
||||||
script = ./nixos-rebuild.sh;
|
{
|
||||||
env-vars = [ ];
|
name = "nixos-rebuild";
|
||||||
}
|
script = ./nixos-rebuild.sh;
|
||||||
]);
|
env-vars = [ ];
|
||||||
|
}
|
||||||
|
]
|
||||||
|
)
|
||||||
|
++ [
|
||||||
|
{
|
||||||
|
name = "library";
|
||||||
|
value =
|
||||||
|
builtins.filterSource (p: _t: baseNameOf p == "library.sh") ./.;
|
||||||
|
}
|
||||||
|
]
|
||||||
|
);
|
||||||
|
devShells.${system}.default = pkgs.mkShell
|
||||||
|
{
|
||||||
|
packages = with pkgs;
|
||||||
|
[
|
||||||
|
curl
|
||||||
|
diffutils
|
||||||
|
gzip
|
||||||
|
jd-diff-patch
|
||||||
|
jq
|
||||||
|
openssh
|
||||||
|
gnutar
|
||||||
|
iputils
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
retry() {
|
||||||
|
local t0 cur_date remaining
|
||||||
|
local timeout="${1:?error: no timeout given}"
|
||||||
|
local period="${2:?error: no period given}"
|
||||||
|
declare -a cmd=("${@:3}")
|
||||||
|
|
||||||
|
t0="$(date '+%s')"
|
||||||
|
until "${cmd[@]}"
|
||||||
|
do
|
||||||
|
sleep "$period"
|
||||||
|
cur_date="$(date '+%s')"
|
||||||
|
remaining=$((t0 + timeout - cur_date))
|
||||||
|
[ "$remaining" -gt 0 ] || return 1
|
||||||
|
echo "$remaining seconds remain before teardown"
|
||||||
|
done
|
||||||
|
}
|
Loading…
Reference in New Issue