1{
2 bash,
3 writers,
4 python3Packages,
5}:
6let
7 writeCheckedBashBin =
8 name:
9 let
10 interpreter = "${bash}/bin/bash";
11 in
12 writers.makeScriptWriter {
13 inherit interpreter;
14 check = "${interpreter} -n $1";
15 } "/bin/${name}";
16
17 # Helpers used during build/development.
18 lint = writeCheckedBashBin "lint" ''
19 ${python3Packages.flake8}/bin/flake8 --show-source ''${@}
20 '';
21
22 unittest = writeCheckedBashBin "unittest" ''
23 if [ "$#" -eq 0 ]; then
24 set -- discover -p '*_test.py'
25 fi
26
27 ${python3Packages.python}/bin/python -m unittest "''${@}"
28 '';
29
30 format = writeCheckedBashBin "format" ''
31 ${python3Packages.autopep8}/bin/autopep8 -r -i . "''${@}"
32 '';
33in
34{
35 inherit format lint unittest;
36}