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 = null;
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 in {
44 default = pkgs.mkShell {
45 nativeBuildInputs = [
46 pkgs.go
47 pkgs.air
48 pkgs.templ
49 pkgs.gopls
50 pkgs.httpie
51 pkgs.indigo-lexgen
52 pkgs.litecli
53 pkgs.websocat
54 ];
55 };
56 });
57 apps = forAllSystems (system:
58 let
59 pkgs = nixpkgsFor."${system}";
60 air-watcher = name: pkgs.writeShellScriptBin "run"
61 ''
62 ${pkgs.air}/bin/air -c /dev/null -build.cmd "${pkgs.go}/bin/go build -o ${name}.out ./cmd/${name}/main.go" -build.bin "./${name}.out"
63 '';
64 in
65 {
66 watch-appview = {
67 type = "app";
68 program = ''${air-watcher "appview"}/bin/run'';
69 };
70 watch-knotserver = {
71 type = "app";
72 program = ''${air-watcher "knotserver"}/bin/run'';
73 };
74 });
75 };
76}