1{
2 inputs = {
3 nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
4 };
5 outputs = { self, nixpkgs }:
6 let
7 systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
8 forAllSystems = f: nixpkgs.lib.genAttrs systems f;
9 outputsBySystem = forAllSystems (system:
10 let
11 pkgs = nixpkgs.legacyPackages.${system};
12 in
13 {
14 packages = {
15 default = pkgs.buildGo124Module {
16 pname = "cocoon";
17 version = "0.1.0";
18 src = ../.;
19 vendorHash = "sha256-kFwd2FnOueEOg/YRTQ8c7/iAO3PoO3yzWyVDFu43QOs=";
20 meta.mainProgram = "cocoon";
21 };
22 };
23 devShells = {
24 default = pkgs.mkShell {
25 buildInputs = [
26 pkgs.go_1_24
27 pkgs.gopls
28 pkgs.gotools
29 pkgs.go-tools
30 ];
31 };
32 };
33 });
34 mergeOutputs = outputType:
35 nixpkgs.lib.mapAttrs (system: systemOutputs: systemOutputs.${outputType} or {}) outputsBySystem;
36 in
37 {
38 packages = mergeOutputs "packages";
39 devShells = mergeOutputs "devShells";
40 };
41}