forked from anomalyco/opencode
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
Latest commit
69 lines (66 loc) · 1.95 KB
/
Copy pathflake.nix
File metadata and controls
69 lines (66 loc) · 1.95 KB
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
63
64
65
66
67
68
69
{
description="OpenCode development flake";
inputs={
nixpkgs.url="github:NixOS/nixpkgs/nixpkgs-unstable";
};
outputs=
{self,nixpkgs, ... }:
let
systems=[
"aarch64-linux"
"x86_64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
forEachSystem=f: nixpkgs.lib.genAttrssystems(system: fnixpkgs.legacyPackages.${system});
rev=self.shortRevorself.dirtyShortRevor"dirty";
in
{
devShells=forEachSystem(pkgs: {
default=pkgs.mkShell{
packages=withpkgs;[
bun
nodejs_20
pkg-config
openssl
git
];
};
});
packages=forEachSystem(
pkgs:
let
node_modules=pkgs.callPackage./nix/node_modules.nix{
inheritrev;
};
opencode=pkgs.callPackage./nix/opencode.nix{
inheritnode_modules;
};
desktop=pkgs.callPackage./nix/desktop.nix{
inheritopencode;
};
# nixpkgs cpu naming to bun cpu naming
cpuMap={x86_64="x64";aarch64="arm64";};
# matrix of node_modules builds - these will always fail due to fakeHash usage
# but allow computation of the correct hash from any build machine for any cpu/os
# see the update-nix-hashes workflow for usage
moduleUpdaters=pkgs.lib.listToAttrs(
pkgs.lib.concatMap(cpu:
map(os: {
name="${cpu}-${os}_node_modules";
value=node_modules.override{
bunCpu=cpuMap.${cpu};
bunOs=os;
hash=pkgs.lib.fakeHash;
};
})["linux""darwin"]
)["x86_64""aarch64"]
);
in
{
default=opencode;
inheritopencodedesktop;
}//moduleUpdaters
);
};
}