{ description = "Tasksquire"; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; tasksquire = pkgs.buildGoModule { pname = "tasksquire"; version = "0.1.0"; src = ./.; # Update this hash when dependencies change. # You can get the correct hash by running `nix build`. 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"; }; }; in { packages.default = tasksquire; packages.tasksquire = tasksquire; apps.default = flake-utils.lib.mkApp { drv = tasksquire; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ go_1_24 gcc gotools golangci-lint gopls go-outline gopkgs go-tools gotests delve taskwarrior3 timewarrior ]; CGO_CFLAGS = "-O"; }; # Backward compatibility devShell = self.devShells.${system}.default; }); }