diff options
author | Louis Pilfold <louis@lpil.uk> | 2021-07-31 14:08:42 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2021-07-31 14:10:32 +0100 |
commit | 28e0d90719789349e64fd0900d12077929355a6d (patch) | |
tree | 9f81b441e6f271abae42c17cb0d2d8cd0ed2faed /bin/test.sh | |
download | javascript-28e0d90719789349e64fd0900d12077929355a6d.tar.gz javascript-28e0d90719789349e64fd0900d12077929355a6d.zip |
Hello, Joe!
Diffstat (limited to 'bin/test.sh')
-rw-r--r-- | bin/test.sh | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/bin/test.sh b/bin/test.sh new file mode 100644 index 0000000..d5c28b1 --- /dev/null +++ b/bin/test.sh @@ -0,0 +1,62 @@ +#/bin/bash +set -eu + +library_dir() { + echo "lib/$1" +} + +library_out_dir() { + echo "node_modules/$1" +} + +clone_dep() { + local dir=$(library_dir "$1") + local tag="$2" + local url="$3" + + if [ ! -d "$dir" ] ; then + mkdir -p lib + git clone --depth=1 --branch="$tag" "$url" "$dir" + fi +} + +compile_library() { + local name="$1" + echo "Compiling $name" + + shift + local lib_flags=() + for dep in "$@"; do + lib_flags+=("--lib=$(library_out_dir $dep)") + done + + local dir=$(library_dir "$name") + local src="$dir/src" + local test="$dir/test" + local out=$(library_out_dir "$name") + rm -rf out + + gleam compile-package \ + --name "$name" \ + --target javascript \ + --src "$src" \ + --out $(library_out_dir "$name") \ + "${lib_flags[@]: }" + + cp "$src/"*.js "$out/" +} + +clone_dep gleam_stdlib main https://github.com/gleam-lang/stdlib.git +compile_library gleam_stdlib + +rm -rf node_modules/gleam_javascript +gleam compile-package \ + --name gleam_javascript \ + --target javascript \ + --src src \ + --test test \ + --out node_modules/gleam_javascript \ + --lib node_modules/gleam_stdlib +cp "src/"*.js "node_modules/gleam_javascript/" + +node bin/run-tests.js |