start using ninja

master
Brian Hicks 2020-05-14 13:48:36 -05:00
parent 2ed5fe1463
commit daa7909223
6 changed files with 31 additions and 39 deletions

1
.envrc
View File

@ -1,2 +1 @@
use nix
PATH_add ./node_modules/.bin

2
.gitignore vendored
View File

@ -1,6 +1,8 @@
/.cache
/.ninja*
/data
/dist
/index.js
/log.txt
/node_modules
elm-stuff

6
build.ninja Normal file
View File

@ -0,0 +1,6 @@
elmFlags=--debug
rule elm
command = elm make $elmFlags --output=$out $in
build index.js: elm src/Main.elm | elm.json src/Database/ID.elm src/Main.elm src/Selection.elm src/Database.elm src/Search.elm src/Html/Styled/Events/Extra.elm src/Content.elm src/Node.elm src/Route.elm src/Widgets/Colors.elm src/Widgets/Icons.elm src/Widgets/TimeDifference.elm src/Widgets/Text.elm src/Widgets/Button.elm

15
script/build.sh Executable file
View File

@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -eou pipefail
ELM_FILES="$(find src -name '*.elm')"
cat > build.ninja <<EOF
elmFlags=--debug
rule elm
command = elm make \$elmFlags --output=\$out \$in
build index.js: elm src/Main.elm | elm.json $(echo "$ELM_FILES" | tr '\n' ' ')
EOF
ninja "$@"

View File

@ -1,36 +0,0 @@
#!/usr/bin/env sh
set -euo pipefail
ELM_JSON="${1:-}"
NAME="${2:-}"
if test -z "$NAME"; then
echo "usage: $0 elm.json Name.Of.Module"
exit 1
fi
RELATIVE_PATH="$(echo $NAME | sed 's|\.|/|g').elm"
# look locally
for DIR in $(jq -r '.["source-directories"] | join(" ")' "$ELM_JSON"); do
FINAL="$DIR/$RELATIVE_PATH"
if test -f $FINAL; then
echo "$FINAL"
exit 0
fi
done
# look in elm-stuff
ELM_HOME="${ELM_HOME:-$HOME/.elm}"
ELM_VERSION="$(jq -r '.["elm-version"]' "$ELM_JSON")"
for PROJECT_VERSION_SRC in $(jq -r '.dependencies.direct | to_entries | map("\(.key)/\(.value)") | join(" ")' "$ELM_JSON"); do
FINAL="$ELM_HOME/$ELM_VERSION/packages/$PROJECT_VERSION_SRC/src/$RELATIVE_PATH"
if test -f $FINAL; then
echo "$FINAL"
exit 0
fi
done
exit 1

View File

@ -13,8 +13,14 @@ stdenv.mkDerivation {
niv.niv
git
# elm
elmPackages.elm
elmPackages.elm-format
elmPackages.elm-test
# elmPackages.elm-json
# elmPackages.elm-review
# building
nodejs-12_x
nodePackages.npm
ninja
] ++ lib.optionals stdenv.isDarwin darwinDeps;
}