2017-11-20 19:36:36 +02:00
|
|
|
with import ./config.nix;
|
|
|
|
|
2024-04-11 00:46:19 +03:00
|
|
|
rec {
|
2017-11-20 19:36:36 +02:00
|
|
|
hello = mkDerivation {
|
|
|
|
name = "hello";
|
2022-04-22 16:17:01 +03:00
|
|
|
outputs = [ "out" "dev" ];
|
|
|
|
meta.outputsToInstall = [ "out" ];
|
2017-11-20 19:36:36 +02:00
|
|
|
buildCommand =
|
|
|
|
''
|
2022-04-22 16:17:01 +03:00
|
|
|
mkdir -p $out/bin $dev/bin
|
|
|
|
|
2017-11-20 19:36:36 +02:00
|
|
|
cat > $out/bin/hello <<EOF
|
|
|
|
#! ${shell}
|
|
|
|
who=\$1
|
|
|
|
echo "Hello \''${who:-World} from $out/bin/hello"
|
|
|
|
EOF
|
|
|
|
chmod +x $out/bin/hello
|
2022-04-22 16:17:01 +03:00
|
|
|
|
|
|
|
cat > $dev/bin/hello2 <<EOF
|
|
|
|
#! ${shell}
|
|
|
|
echo "Hello2"
|
|
|
|
EOF
|
|
|
|
chmod +x $dev/bin/hello2
|
2017-11-20 19:36:36 +02:00
|
|
|
'';
|
|
|
|
};
|
2023-12-20 20:25:22 +02:00
|
|
|
|
2024-04-11 00:46:19 +03:00
|
|
|
hello-symlink = mkDerivation {
|
|
|
|
name = "hello-symlink";
|
|
|
|
buildCommand =
|
|
|
|
''
|
|
|
|
ln -s ${hello} $out
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2024-04-11 10:04:26 +03:00
|
|
|
forbidden-symlink = mkDerivation {
|
|
|
|
name = "forbidden-symlink";
|
|
|
|
buildCommand =
|
|
|
|
''
|
|
|
|
ln -s /tmp/foo/bar $out
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2023-12-20 20:25:22 +02:00
|
|
|
salve-mundi = mkDerivation {
|
|
|
|
name = "salve-mundi";
|
|
|
|
outputs = [ "out" ];
|
|
|
|
meta.outputsToInstall = [ "out" ];
|
|
|
|
buildCommand =
|
|
|
|
''
|
|
|
|
mkdir -p $out/bin
|
|
|
|
|
|
|
|
cat > $out/bin/hello <<EOF
|
|
|
|
#! ${shell}
|
|
|
|
echo "Salve Mundi from $out/bin/hello"
|
|
|
|
EOF
|
|
|
|
chmod +x $out/bin/hello
|
|
|
|
'';
|
|
|
|
};
|
2024-06-10 12:39:06 +03:00
|
|
|
|
|
|
|
# execs env from PATH, so that we can probe the environment
|
|
|
|
# does not allow arguments, because we don't need them
|
|
|
|
env = mkDerivation {
|
|
|
|
name = "env";
|
|
|
|
outputs = [ "out" ];
|
|
|
|
buildCommand =
|
|
|
|
''
|
|
|
|
mkdir -p $out/bin
|
|
|
|
|
|
|
|
cat > $out/bin/env <<EOF
|
|
|
|
#! ${shell}
|
|
|
|
if [ $# -ne 0 ]; then
|
|
|
|
echo "env: Unexpected arguments ($#): $@" 1>&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
exec env
|
|
|
|
EOF
|
|
|
|
chmod +x $out/bin/env
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2017-11-20 19:36:36 +02:00
|
|
|
}
|