nixpkgs/pkgs/build-support/trivial-builders
Charlie Moog 0b4c5d23cd
trivial-builders: add meta.mainProgram to writeShellScriptBin
Derivations built with `writeShellScriptBin`
should always be runnable with `nix run`. At present,
the derivation is missing both `meta.mainProgram`
and `pname`– this means that `nix run` falls back
to inferring the bin path from `name`. This is
unreliable and depends on faulty heuristics.

For context, reference the following snippet from
`nix run --help`:

    If installable evaluates to a derivation, it will try to execute the
    program <out>/bin/<name>, where out is the primary output store path
    of the derivation, and name is the first of the following that exists:

      · The meta.mainProgram attribute of the derivation.
      · The pname attribute of the derivation.
      · The name part of the value of the name attribute of the derivation.
2023-08-11 00:40:37 -05:00
..
test tests.trivial-builders.writeTextFile: Test meta.mainProgram logic 2023-07-26 18:45:54 +02:00
default.nix trivial-builders: add meta.mainProgram to writeShellScriptBin 2023-08-11 00:40:37 -05:00
test-overriding.nix tests.trivial-builders.overriding: update after shellDryRun 2021-12-27 20:30:01 -05:00