/ flake.nix
flake.nix
1 { 2 description = "HomeTUI - A TUI client for Home Assistant"; 3 4 inputs = { 5 nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 6 flake-parts.url = "github:hercules-ci/flake-parts"; 7 }; 8 9 outputs = 10 inputs@{ flake-parts, ... }: 11 flake-parts.lib.mkFlake { inherit inputs; } { 12 systems = [ 13 "x86_64-linux" 14 "aarch64-linux" 15 "x86_64-darwin" 16 "aarch64-darwin" 17 ]; 18 19 perSystem = 20 { 21 config, 22 self', 23 inputs', 24 pkgs, 25 system, 26 ... 27 }: 28 { 29 packages.default = pkgs.buildGoModule { 30 pname = "hometui"; 31 version = "0.1.0"; 32 src = ./.; 33 vendorHash = "sha256-eLCeRdRQPfp5cOX/PDM8xsfMgA/zAfWAfB/EXBc6bIg="; 34 subPackages = [ "cmd/hometui" ]; 35 ldflags = [ 36 "-s" 37 "-w" 38 ]; 39 }; 40 41 apps.default = { 42 type = "app"; 43 program = "${self'.packages.default}/bin/hometui"; 44 meta.description = "TUI client for Home Assistant"; 45 }; 46 47 formatter = pkgs.nixpkgs-fmt; 48 49 devShells.default = pkgs.mkShell { 50 buildInputs = with pkgs; [ 51 go 52 gopls 53 gotools 54 go-tools 55 ]; 56 57 shellHook = '' 58 echo "HomeTUI development environment" 59 echo "Run: go build -o hometui ./cmd/hometui" 60 ''; 61 }; 62 }; 63 }; 64 }