2024-10-31 13:46:58 +00:00
|
|
|
# shellcheck shell=bash
|
2024-10-30 04:33:28 +00:00
|
|
|
|
2022-07-13 12:40:39 +00:00
|
|
|
source ../common.sh
|
|
|
|
|
2024-10-30 04:33:28 +00:00
|
|
|
# shellcheck disable=SC2034 # this variable is used by tests that source this file
|
2022-07-13 12:40:39 +00:00
|
|
|
registry=$TEST_ROOT/registry.json
|
|
|
|
|
|
|
|
writeSimpleFlake() {
|
|
|
|
local flakeDir="$1"
|
2024-10-30 04:33:28 +00:00
|
|
|
cat > "$flakeDir/flake.nix" <<EOF
|
2022-07-13 12:40:39 +00:00
|
|
|
{
|
|
|
|
description = "Bla bla";
|
|
|
|
|
|
|
|
outputs = inputs: rec {
|
|
|
|
packages.$system = rec {
|
|
|
|
foo = import ./simple.nix;
|
2021-08-28 20:26:53 +00:00
|
|
|
fooScript = (import ./shell.nix {}).foo;
|
2022-07-13 12:40:39 +00:00
|
|
|
default = foo;
|
2023-01-27 09:13:05 +00:00
|
|
|
};
|
|
|
|
packages.someOtherSystem = rec {
|
|
|
|
foo = import ./simple.nix;
|
|
|
|
default = foo;
|
2022-07-13 12:40:39 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
# To test "nix flake init".
|
2023-01-30 09:44:10 +00:00
|
|
|
legacyPackages.$system.hello = import ./simple.nix;
|
2024-04-30 13:34:38 +00:00
|
|
|
|
|
|
|
parent = builtins.dirOf ./.;
|
2024-04-30 13:43:33 +00:00
|
|
|
|
|
|
|
baseName = builtins.baseNameOf ./.;
|
2024-04-30 14:46:36 +00:00
|
|
|
|
|
|
|
root = ./.;
|
2022-07-13 12:40:39 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
2024-11-01 13:56:50 +00:00
|
|
|
cp ../simple.nix ../shell.nix ../simple.builder.sh "${config_nix}" "$flakeDir/"
|
2022-07-13 12:40:39 +00:00
|
|
|
}
|
|
|
|
|
2022-07-13 18:36:11 +00:00
|
|
|
createSimpleGitFlake() {
|
|
|
|
local flakeDir="$1"
|
2024-10-30 04:33:28 +00:00
|
|
|
writeSimpleFlake "$flakeDir"
|
|
|
|
git -C "$flakeDir" add flake.nix simple.nix shell.nix simple.builder.sh config.nix
|
|
|
|
git -C "$flakeDir" commit -m 'Initial'
|
2022-07-13 18:36:11 +00:00
|
|
|
}
|
|
|
|
|
2022-07-13 12:40:39 +00:00
|
|
|
writeDependentFlake() {
|
|
|
|
local flakeDir="$1"
|
2024-10-30 04:33:28 +00:00
|
|
|
cat > "$flakeDir/flake.nix" <<EOF
|
2022-07-13 12:40:39 +00:00
|
|
|
{
|
|
|
|
outputs = { self, flake1 }: {
|
|
|
|
packages.$system.default = flake1.packages.$system.default;
|
|
|
|
expr = assert builtins.pathExists ./flake.lock; 123;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
}
|
2022-07-13 18:16:39 +00:00
|
|
|
|
2022-07-13 18:36:11 +00:00
|
|
|
writeTrivialFlake() {
|
|
|
|
local flakeDir="$1"
|
2024-10-30 04:33:28 +00:00
|
|
|
cat > "$flakeDir/flake.nix" <<EOF
|
2022-07-13 18:36:11 +00:00
|
|
|
{
|
|
|
|
outputs = { self }: {
|
|
|
|
expr = 123;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
}
|
|
|
|
|
2022-07-13 18:16:39 +00:00
|
|
|
createGitRepo() {
|
|
|
|
local repo="$1"
|
2021-12-09 15:26:46 +00:00
|
|
|
local extraArgs="${2-}"
|
2022-07-13 18:16:39 +00:00
|
|
|
|
2022-06-04 10:07:08 +00:00
|
|
|
rm -rf "$repo" "$repo".tmp
|
|
|
|
mkdir -p "$repo"
|
2022-07-13 18:16:39 +00:00
|
|
|
|
2024-10-30 04:33:28 +00:00
|
|
|
# shellcheck disable=SC2086 # word splitting of extraArgs is intended
|
2022-06-04 10:07:08 +00:00
|
|
|
git -C "$repo" init $extraArgs
|
|
|
|
git -C "$repo" config user.email "foobar@example.com"
|
|
|
|
git -C "$repo" config user.name "Foobar"
|
2022-07-13 18:16:39 +00:00
|
|
|
}
|