{ description = "Tasksquire"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; }; outputs = inputs@{ self, nixpkgs, flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; perSystem = { config, self', inputs', pkgs, system, ... }: { packages.tasksquire = pkgs.buildGoModule { pname = "tasksquire"; version = "0.1.0"; src = ./.; vendorHash = "sha256-fDzQuKBZPkOATMMnYcFv/aJP62XDhL9LjM/UYre9JQ4="; ldflags = [ "-s" "-w" ]; nativeBuildInputs = with pkgs; [ taskwarrior3 timewarrior ]; meta = with pkgs.lib; { description = "A Terminal User Interface (TUI) for Taskwarrior"; mainProgram = "tasksquire"; }; }; # Set the default package packages.default = self'.packages.tasksquire; # Development shell devShells.default = pkgs.mkShell { inputsFrom = [ self'.packages.tasksquire ]; buildInputs = with pkgs; [ go gcc gotools golangci-lint gopls go-outline gopkgs go-tools gotests delve ]; CGO_CFLAGS = "-O"; }; }; }; }