blob: dbf6fa2f99dfc1f945742a43e905d922e3e9bc70 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#/bin/bash
set -eu
library_dir() {
echo "_build/deps/$1"
}
project_dir() {
echo "_build/lib/$1"
}
clone_dep() {
local dir=$(library_dir "$1")
local tag="$2"
local url="$3"
if [ ! -d "$dir" ] ; then
mkdir -p "$dir"
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=$(project_dir $dep)")
done
local dir=$(library_dir "$name")
local src="$dir/src"
local out=$(project_dir "$name")
if [ ! -d "$out" ] ; then
gleam compile-package \
--name "$name" \
--target javascript \
--src "$src" \
--out $(project_dir "$name") \
"${lib_flags[@]: }"
cp "$src/"*.js "$out/"
fi
}
clone_dep gleam_stdlib main https://github.com/gleam-lang/stdlib.git
compile_library gleam_stdlib
rm -rf $(project_dir gleam_javascript)
gleam compile-package \
--name gleam_javascript \
--target javascript \
--src src \
--test test \
--out $(project_dir gleam_javascript) \
--lib $(project_dir gleam_stdlib)
cp "src/"*.js $(project_dir gleam_javascript)/
node bin/run-tests.js
|