alpha
Login
or
Join now
ollie.earth
/
witness
Star
0
Fork
1
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Yet another structured logging library
Star
0
Fork
1
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
1
Pipelines
elp and flake.nix -> default.nix
author
ollie
date
1 day ago
(Jul 25, 2026, 10:34 PM +0200)
commit
c63e78d5
c63e78d5b0e8df5da049487fbd5d67924fdff0a4
parent
9d8f8312
9d8f8312ea870db41966bf78792daa336efdf159
change-id
zktttrov
zktttrovypozywtsqqpowpuwokskynlw
+91
-112
9 changed files
Expand all
Collapse all
Unified
Split
.elp.toml
.envrc
.gitignore
default.nix
flake.lock
flake.nix
justfile
shell.nix
update-elp.bash
+2
.elp.toml
View file
Reviewed
···
1
1
+
[build_info]
2
2
+
file = ".elp.build_info"
+2
-2
.envrc
View file
Reviewed
···
1
1
-
if nix flake show &> /dev/null; then
2
2
-
use flake
1
1
+
if [ -e shell.nix -o -e default.nix ]; then
2
2
+
use nix
3
3
fi
+2
.gitignore
View file
Reviewed
···
5
5
6
6
# Ignore direnv cache
7
7
.direnv/
8
8
+
.elp
9
9
+
.elp.build_info
+27
default.nix
View file
Reviewed
···
1
1
+
let
2
2
+
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-26.05";
3
3
+
pkgs = import nixpkgs {
4
4
+
config = { };
5
5
+
overlays = [ ];
6
6
+
};
7
7
+
in
8
8
+
{
9
9
+
shell = pkgs.mkShellNoCC {
10
10
+
packages = with pkgs; [
11
11
+
gleam
12
12
+
erlang-language-platform
13
13
+
beam28Packages.erlang
14
14
+
rebar3
15
15
+
just
16
16
+
nodejs
17
17
+
watchexec
18
18
+
caddy
19
19
+
];
20
20
+
21
21
+
shellHook = ''
22
22
+
echo "dev env loaded"
23
23
+
just --list
24
24
+
echo "Use just to run them."
25
25
+
'';
26
26
+
};
27
27
+
}
-61
flake.lock
Reviewed
···
1
1
-
{
2
2
-
"nodes": {
3
3
-
"nixpkgs": {
4
4
-
"locked": {
5
5
-
"lastModified": 1777954456,
6
6
-
"narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
7
7
-
"owner": "NixOS",
8
8
-
"repo": "nixpkgs",
9
9
-
"rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
10
10
-
"type": "github"
11
11
-
},
12
12
-
"original": {
13
13
-
"owner": "NixOS",
14
14
-
"ref": "nixos-unstable",
15
15
-
"repo": "nixpkgs",
16
16
-
"type": "github"
17
17
-
}
18
18
-
},
19
19
-
"root": {
20
20
-
"inputs": {
21
21
-
"nixpkgs": "nixpkgs",
22
22
-
"utils": "utils"
23
23
-
}
24
24
-
},
25
25
-
"systems": {
26
26
-
"locked": {
27
27
-
"lastModified": 1681028828,
28
28
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
29
29
-
"owner": "nix-systems",
30
30
-
"repo": "default",
31
31
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
32
32
-
"type": "github"
33
33
-
},
34
34
-
"original": {
35
35
-
"owner": "nix-systems",
36
36
-
"repo": "default",
37
37
-
"type": "github"
38
38
-
}
39
39
-
},
40
40
-
"utils": {
41
41
-
"inputs": {
42
42
-
"systems": "systems"
43
43
-
},
44
44
-
"locked": {
45
45
-
"lastModified": 1731533236,
46
46
-
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
47
47
-
"owner": "numtide",
48
48
-
"repo": "flake-utils",
49
49
-
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
50
50
-
"type": "github"
51
51
-
},
52
52
-
"original": {
53
53
-
"owner": "numtide",
54
54
-
"repo": "flake-utils",
55
55
-
"type": "github"
56
56
-
}
57
57
-
}
58
58
-
},
59
59
-
"root": "root",
60
60
-
"version": 7
61
61
-
}
-40
flake.nix
Reviewed
···
1
1
-
{
2
2
-
description = "dev env";
3
3
-
4
4
-
inputs = {
5
5
-
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
6
-
utils.url = "github:numtide/flake-utils";
7
7
-
};
8
8
-
9
9
-
outputs =
10
10
-
{
11
11
-
self,
12
12
-
nixpkgs,
13
13
-
utils,
14
14
-
}:
15
15
-
utils.lib.eachDefaultSystem (
16
16
-
system:
17
17
-
let
18
18
-
pkgs = import nixpkgs { inherit system; };
19
19
-
in
20
20
-
{
21
21
-
devShells.default = pkgs.mkShell {
22
22
-
buildInputs = with pkgs; [
23
23
-
gleam
24
24
-
erlang_28
25
25
-
rebar3
26
26
-
just
27
27
-
nodejs
28
28
-
29
29
-
watchexec
30
30
-
];
31
31
-
32
32
-
shellHook = ''
33
33
-
echo "dev env loaded"
34
34
-
just --list
35
35
-
echo "Use just to run them."
36
36
-
'';
37
37
-
};
38
38
-
}
39
39
-
);
40
40
-
}
+2
-9
justfile
View file
Reviewed
···
1
1
-
# show this
2
1
default:
3
2
@just --list
4
3
5
5
-
# gleam build
6
6
-
build:
7
7
-
gleam build
8
8
-
9
9
-
# gleam run
10
10
-
run:
11
11
-
gleam run
12
12
-
4
4
+
update-elp:
5
5
+
bash ./update-elp.bash
+1
shell.nix
View file
Reviewed
···
1
1
+
(import ./.).shell
+55
update-elp.bash
View file
Reviewed
···
1
1
+
set -euo pipefail
2
2
+
3
3
+
app_name=$(awk -F'"' '/^name[[:space:]]*=/ { print $2; exit }' gleam.toml)
4
4
+
build_dir="build/dev/erlang/$app_name"
5
5
+
6
6
+
rm -rf .elp
7
7
+
mkdir -p .elp
8
8
+
for erl_file in "$build_dir"/_gleam_artefacts/*.erl; do
9
9
+
[ -e "$erl_file" ] || continue
10
10
+
base_name=$(basename "$erl_file")
11
11
+
already_in_src=$(find src -name "$base_name" -print -quit)
12
12
+
if [ -z "$already_in_src" ]; then
13
13
+
ln -sf "$(pwd)/$erl_file" ".elp/$base_name"
14
14
+
fi
15
15
+
done
16
16
+
17
17
+
list_deps() {
18
18
+
for dep_dir in build/dev/erlang/*/; do
19
19
+
dep_name=$(basename "$dep_dir")
20
20
+
[ "$dep_name" = "$app_name" ] && continue
21
21
+
22
22
+
if [ -d "${dep_dir}_gleam_artefacts" ]; then
23
23
+
dep_src_dir=_gleam_artefacts
24
24
+
elif find "${dep_dir}src" -maxdepth 1 -iname "*.erl" -print -quit 2>/dev/null | grep -q .; then
25
25
+
dep_src_dir=src
26
26
+
else
27
27
+
continue
28
28
+
fi
29
29
+
30
30
+
jq -n \
31
31
+
--arg name "$dep_name" \
32
32
+
--arg dir "build/dev/erlang/$dep_name" \
33
33
+
--arg src_dir "$dep_src_dir" \
34
34
+
'{name: $name, dir: $dir, src_dirs: [$src_dir], include_dirs: ["include"], ebin: "ebin"}'
35
35
+
done
36
36
+
}
37
37
+
38
38
+
jq -n \
39
39
+
--arg name "$app_name" \
40
40
+
--arg include_dir "$build_dir/include" \
41
41
+
--arg ebin_dir "$build_dir/ebin" \
42
42
+
--slurpfile deps <(list_deps) \
43
43
+
'{
44
44
+
apps: [{
45
45
+
name: $name,
46
46
+
dir: ".",
47
47
+
src_dirs: ["src"],
48
48
+
extra_src_dirs: [".elp"],
49
49
+
include_dirs: [$include_dir],
50
50
+
ebin: $ebin_dir
51
51
+
}],
52
52
+
deps: $deps
53
53
+
}' > .elp.build_info
54
54
+
55
55
+
echo "wrote .elp.build_info for app \"$app_name\""