11
## Default to pure Nix-iness:
13
, workbenchDevMode ? false
24
then "cabal-exes+nix-wb"
25
else "nix-exes+nix-wb";
35
buildInputs = [ jq makeWrapper ];
42
wrapProgram "$out/bin/wb" --argv0 wb --add-flags "--set-mode ${nixWbMode}" --prefix PATH ":" ${stdenv.lib.makeBinPath
54
cp -a wb profiles *.sh *.jq $out/bin
63
${workbench}/bin/wb ${command} > $out
70
${jq}/bin/jq '${query}' "''${args[@]}" > $out
74
toString [ "${cabal-install}/bin/cabal" op "${exe}" "--"];
78
then "cabal-exes+checkout-wb"
79
else "nix-exes+checkout-wb";
82
${optionalString workbenchDevMode
84
echo 'workbench: dev mode enabled, calling wb directly from checkout (instead of using Nix store)' >&2
86
workbench_cardano_node_repo_root=$(git rev-parse --show-toplevel)
87
workbench_extra_flags=
90
$workbench_cardano_node_repo_root/nix/workbench/wb --set-mode ${checkoutWbMode} $workbench_extra_flags "$@"
93
export workbench_cardano_node_repo_root workbench_extra_flags
98
${optionalString useCabalRun
100
./scripts/cabal-inside-nix-shell.sh
102
echo 'workbench: cabal-inside-nix-shell mode enabled, calling cardano-* via 'cabal run' (instead of using Nix store)' >&2
104
function cardano-cli() {
105
${exeCabalOp "exec" "cardano-cli"} "$@"
108
function cardano-node() {
109
${exeCabalOp "exec" "cardano-node"} "$@"
112
function cardano-topology() {
113
${exeCabalOp "exec" "cardano-topology"} "$@"
116
export -f cardano-cli cardano-node cardano-topology
120
function workbench-prebuild-executables() {
121
${optionalString useCabalRun
123
echo -n "workbench: prebuilding executables (because of useCabalRun):"
124
for exe in cardano-cli cardano-node cardano-topology
126
cabal -v0 build exe:$exe >/dev/null || return 1
132
export -f workbench-prebuild-executables
139
## The backend is an attrset of AWS/supervisord-specific methods and parameters.
142
## Environmental settings:
143
## - either affect semantics on all backends equally,
144
## - or have no semantic effect
149
runWorkbench "profile-names.json" "profiles list";
152
__fromJSON (__readFile profile-names-json);
156
pkgs.callPackage ./profiles
159
runWorkbench runJq workbench
165
profiles = genAttrs profile-names mkProfile;
168
runWorkbench "all-profiles.json" "profiles generate-all";
172
inherit workbench runWorkbench runJq;
174
inherit generateProfiles shellHook;