2024-05-28 19:43:04 +03:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2022-03-11 15:57:28 +02:00
|
|
|
source common.sh
|
|
|
|
|
2024-06-16 18:56:50 +03:00
|
|
|
TODO_NixOS # Provide a `shell` variable. Try not to `export` it, perhaps.
|
2024-06-16 13:51:46 +03:00
|
|
|
|
2024-06-16 18:56:50 +03:00
|
|
|
clearStoreIfPossible
|
2024-09-05 11:29:48 +03:00
|
|
|
rm -rf "$TEST_HOME"/.cache "$TEST_HOME"/.config "$TEST_HOME"/.local
|
2022-03-11 15:57:28 +02:00
|
|
|
|
2024-09-05 11:29:48 +03:00
|
|
|
cp ./simple.nix ./simple.builder.sh ./fmt.simple.sh ./config.nix "$TEST_HOME"
|
2022-03-11 15:57:28 +02:00
|
|
|
|
2024-09-05 11:29:48 +03:00
|
|
|
cd "$TEST_HOME"
|
2022-03-11 15:57:28 +02:00
|
|
|
|
|
|
|
nix fmt --help | grep "Format"
|
|
|
|
|
|
|
|
cat << EOF > flake.nix
|
|
|
|
{
|
|
|
|
outputs = _: {
|
2022-04-19 21:48:13 +03:00
|
|
|
formatter.$system =
|
|
|
|
with import ./config.nix;
|
|
|
|
mkDerivation {
|
|
|
|
name = "formatter";
|
2022-06-22 23:41:14 +03:00
|
|
|
buildCommand = ''
|
|
|
|
mkdir -p \$out/bin
|
|
|
|
echo "#! ${shell}" > \$out/bin/formatter
|
|
|
|
cat \${./fmt.simple.sh} >> \$out/bin/formatter
|
|
|
|
chmod +x \$out/bin/formatter
|
|
|
|
'';
|
2022-04-19 21:48:13 +03:00
|
|
|
};
|
2022-03-11 15:57:28 +02:00
|
|
|
};
|
|
|
|
}
|
|
|
|
EOF
|
2024-09-05 11:29:48 +03:00
|
|
|
# No arguments check
|
|
|
|
[[ "$(nix fmt)" = "Formatting(0):" ]]
|
|
|
|
# Argument forwarding check
|
|
|
|
nix fmt ./file ./folder | grep 'Formatting(2): ./file ./folder'
|
2022-03-11 15:57:28 +02:00
|
|
|
nix flake check
|
2022-04-19 22:47:13 +03:00
|
|
|
nix flake show | grep -P "package 'formatter'"
|