rss email digests over ssh because you're a cool kid herald.dunkirk.sh
go rss rss-reader ssh charm
at main 78 lines 1.9 kB view raw
1{ 2 description = "Herald - RSS feed aggregator"; 3 4 inputs = { 5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 6 }; 7 8 outputs = 9 { self, nixpkgs }: 10 let 11 allSystems = [ 12 "x86_64-linux" # 64-bit Intel/AMD Linux 13 "aarch64-linux" # 64-bit ARM Linux 14 "x86_64-darwin" # 64-bit Intel macOS 15 "aarch64-darwin" # 64-bit ARM macOS 16 ]; 17 forAllSystems = 18 f: 19 nixpkgs.lib.genAttrs allSystems ( 20 system: 21 f { 22 pkgs = import nixpkgs { inherit system; }; 23 } 24 ); 25 in 26 { 27 packages = forAllSystems ( 28 { pkgs }: 29 { 30 default = pkgs.buildGoModule { 31 pname = "herald"; 32 version = "0.1.1"; 33 subPackages = [ "." ]; 34 src = self; 35 vendorHash = "sha256-SjxTy/ecSUYaJJ8dpfQFLF7WgVEpnKcu5qWcqyw611Q="; 36 proxyVendor = true; 37 ldflags = [ 38 "-X main.commitHash=${self.rev or self.dirtyRev or "dev"}" 39 "-X main.version=0.1.1" 40 ]; 41 }; 42 } 43 ); 44 45 devShells = forAllSystems ( 46 { pkgs }: 47 { 48 default = pkgs.mkShell { 49 buildInputs = with pkgs; [ 50 go_1_24 51 gopls 52 gotools 53 go-tools 54 golangci-lint 55 delve 56 goreleaser 57 ]; 58 59 shellHook = '' 60 echo "Herald development environment" 61 echo "Go version: $(go version)" 62 echo "golangci-lint version: $(golangci-lint version)" 63 ''; 64 }; 65 } 66 ); 67 68 apps = forAllSystems ( 69 { pkgs }: 70 { 71 default = { 72 type = "app"; 73 program = "${self.packages.${pkgs.system}.default}/bin/herald"; 74 }; 75 } 76 ); 77 }; 78}