Merge pull request #1103 from DeterminateSystems/runcommand/dynamic

Dynamic RunCommand
This commit is contained in:
Graham Christensen
2022-04-19 10:09:47 -04:00
committed by GitHub
29 changed files with 1233 additions and 66 deletions

View File

@ -0,0 +1,148 @@
with import ./config.nix;
rec {
foo-bar-baz = mkDerivation {
name = "foo-bar-baz";
builder = "/bin/sh";
outputs = [ "out" ];
args = [
(
builtins.toFile "builder.sh" ''
#! /bin/sh
touch $out
''
)
];
};
runCommandHook.example = mkDerivation {
name = "my-build-product";
builder = "/bin/sh";
outputs = [ "out" ];
args = [
(
builtins.toFile "builder.sh" ''
#! /bin/sh
touch $out
chmod +x $out
# ... dunno ...
''
)
];
};
runCommandHook.symlink = mkDerivation {
name = "symlink-out";
builder = "/bin/sh";
outputs = [ "out" ];
args = [
(
builtins.toFile "builder.sh" ''
#! /bin/sh
ln -s $1 $out
''
)
runCommandHook.example
];
};
runCommandHook.no-out = mkDerivation {
name = "no-out";
builder = "/bin/sh";
outputs = [ "bin" ];
args = [
(
builtins.toFile "builder.sh" ''
#! /bin/sh
mkdir $bin
''
)
];
};
runCommandHook.out-is-directory = mkDerivation {
name = "out-is-directory";
builder = "/bin/sh";
outputs = [ "out" ];
args = [
(
builtins.toFile "builder.sh" ''
#! /bin/sh
mkdir $out
''
)
];
};
runCommandHook.out-is-not-executable-file = mkDerivation {
name = "out-is-directory";
builder = "/bin/sh";
outputs = [ "out" ];
args = [
(
builtins.toFile "builder.sh" ''
#! /bin/sh
touch $out
''
)
];
};
runCommandHook.symlink-non-executable = mkDerivation {
name = "symlink-out";
builder = "/bin/sh";
outputs = [ "out" ];
args = [
(
builtins.toFile "builder.sh" ''
#! /bin/sh
ln -s $1 $out
''
)
runCommandHook.out-is-not-executable-file
];
};
runCommandHook.symlink-directory = mkDerivation {
name = "symlink-directory";
builder = "/bin/sh";
outputs = [ "out" ];
args = [
(
builtins.toFile "builder.sh" ''
#! /bin/sh
ln -s $1 $out
''
)
runCommandHook.out-is-directory
];
};
runCommandHook.failed = mkDerivation {
name = "failed";
builder = "/bin/sh";
outputs = [ "out" ];
args = [
(
builtins.toFile "builder.sh" ''
#! /bin/sh
touch $out
chmod +x $out
exit 1
''
)
];
};
}