diff --git a/src/flake.nix b/src/flake.nix index be67d70b4a..de7629441b 100644 --- a/src/flake.nix +++ b/src/flake.nix @@ -22,12 +22,29 @@ dependencies = (with pkgs; [ zig zls + git # for use in ci/zig_lints.sh ]); - aliases = '' - alias testcmd='zig build snapshot && zig build test' - alias fmtcmd='zig build fmt' - alias buildcmd='zig build roc' + shellFunctions = '' + buildcmd() { + zig build roc + } + export -f buildcmd + + testcmd() { + zig build snapshot && zig build test + } + export -f testscmd + + fmtcmd() { + zig build fmt + } + export -f fmtcmd + + cicmd() { + zig build fmt && ./ci/zig_lints.sh && zig build && zig build snapshot && zig build test && zig build test-playground + } + export -f cicmd ''; in { @@ -36,10 +53,13 @@ buildInputs = dependencies; shellHook = '' - ${aliases} + ${shellFunctions} - echo "Some convenient command aliases:" - echo "${aliases}" | grep -E "alias .*" -o | sed 's/alias / /' | sort + echo "Some convenient commands:" + echo "${shellFunctions}" | grep -E '^\s*[a-zA-Z_][a-zA-Z0-9_]*\(\)' | sed 's/().*//' | sed 's/^[[:space:]]*/ /' | while read func; do + body=$(echo "${shellFunctions}" | sed -n "/''${func}()/,/^[[:space:]]*}/p" | sed '1d;$d' | tr '\n' ';' | sed 's/;$//' | sed 's/[[:space:]]*$//') + echo " $func = $body" + done echo "" unset NIX_CFLAGS_COMPILE