this repo has no description
1{
2 description = "atproto github";
3
4 inputs = {
5 nixpkgs.url = "github:nixos/nixpkgs";
6 indigo = {
7 url = "github:oppiliappan/indigo";
8 flake = false;
9 };
10 };
11
12 outputs = {
13 self,
14 nixpkgs,
15 indigo,
16 }: let
17 supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
18 forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
19 nixpkgsFor = forAllSystems (system:
20 import nixpkgs {
21 inherit system;
22 overlays = [self.overlays.default];
23 });
24 in {
25 overlays.default = final: prev: {
26 indigo-lexgen = with final;
27 final.buildGoModule {
28 pname = "indigo-lexgen";
29 version = "0.1.0";
30 src = indigo;
31 subPackage = ["cmd/lexgen"];
32 vendorHash = "sha256-pGc29fgJFq8LP7n/pY1cv6ExZl88PAeFqIbFEhB3xXs=";
33 doCheck = false;
34 };
35 };
36 packages = forAllSystems (system: {
37 inherit (nixpkgsFor."${system}") indigo-lexgen;
38 });
39 defaultPackage = forAllSystems (system: nixpkgsFor.${system}.indigo-lexgen);
40 formatter = forAllSystems (system: nixpkgsFor."${system}".alejandra);
41 devShells = forAllSystems (system: let
42 pkgs = nixpkgsFor.${system};
43 staticShell = pkgs.mkShell.override {
44 stdenv = pkgs.pkgsStatic.stdenv;
45 };
46 in {
47 default = staticShell {
48 nativeBuildInputs = [
49 pkgs.go
50 pkgs.air
51 pkgs.gopls
52 pkgs.httpie
53 pkgs.indigo-lexgen
54 pkgs.litecli
55 pkgs.websocat
56 ];
57 };
58 });
59 apps = forAllSystems (system: let
60 pkgs = nixpkgsFor."${system}";
61 air-watcher = name:
62 pkgs.writeShellScriptBin "run"
63 ''
64 ${pkgs.air}/bin/air -c /dev/null -build.cmd "${pkgs.go}/bin/go build -o ./out/${name}.out ./cmd/${name}/main.go" -build.bin "./out/${name}.out"
65 '';
66 in {
67 watch-appview = {
68 type = "app";
69 program = ''${air-watcher "appview"}/bin/run'';
70 };
71 watch-knotserver = {
72 type = "app";
73 program = ''${air-watcher "knotserver"}/bin/run'';
74 };
75 });
76 };
77}