Fork of daniellemaywood.uk/gleam — Wasm codegen work
1.4 kB
73 lines
1# SPDX-License-Identifier: Apache-2.0
2# SPDX-FileCopyrightText: 2026 The Gleam contributors
3
4#!/bin/sh
5
6set -eu
7
8GLEAM_COMMAND=${GLEAM_COMMAND:-"cargo run --quiet --"}
9
10g() {
11 echo "Running: $GLEAM_COMMAND $@"
12 $GLEAM_COMMAND "$@"
13}
14
15# Create a monorepo with two sibling packages in a temp directory
16REPO_DIR=$(mktemp -d)
17trap 'rm -rf "$REPO_DIR"' EXIT
18
19mkdir -p "$REPO_DIR/package_a/src" "$REPO_DIR/package_b/src"
20
21cat > "$REPO_DIR/package_b/gleam.toml" << 'TOML'
22name = "package_b"
23version = "0.1.0"
24
25[dependencies]
26TOML
27
28cat > "$REPO_DIR/package_b/src/package_b.gleam" << 'GLEAM'
29pub fn greeting() -> String {
30 "hello from package_b"
31}
32GLEAM
33
34cat > "$REPO_DIR/package_a/gleam.toml" << 'TOML'
35name = "package_a"
36version = "0.1.0"
37
38[dependencies]
39package_b = { path = "../package_b" }
40TOML
41
42cat > "$REPO_DIR/package_a/src/package_a.gleam" << 'GLEAM'
43import package_b
44
45pub fn hello() -> String {
46 package_b.greeting()
47}
48GLEAM
49
50cd "$REPO_DIR"
51git init -q
52git add .
53git -c user.name="Test" -c user.email="test@example.com" commit -q -m "Initial commit"
54REF=$(git rev-parse HEAD)
55cd "$OLDPWD"
56
57echo Resetting the build directory to get to a known state
58rm -fr build
59
60cat > gleam.toml << EOF
61name = "git_deps_path"
62version = "0.1.0"
63
64[dependencies]
65package_a = { git = "file://${REPO_DIR}", ref = "${REF}", path = "package_a" }
66EOF
67
68g update
69g check
70
71echo
72echo Success! 💖
73echo