diff --git a/flake.lock b/flake.lock index bd98a78..5d1bb7f 100644 --- a/flake.lock +++ b/flake.lock @@ -59,6 +59,22 @@ "type": "github" } }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-schemas": { "locked": { "lastModified": 1761577921, @@ -87,6 +103,89 @@ "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A" } }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": [ + "go-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1765016596, + "narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "go-overlay", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "go-overlay": { + "inputs": { + "flake-utils": "flake-utils", + "git-hooks": "git-hooks", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1775676807, + "narHash": "sha256-l7B5l6cGBZoW4bs+4Zq/FMgxaZWWJqdUDkCVuH98hMY=", + "owner": "purpleclay", + "repo": "go-overlay", + "rev": "c5bd812957211f42c207da6b1415f49de30e183f", + "type": "github" + }, + "original": { + "owner": "purpleclay", + "repo": "go-overlay", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -141,6 +240,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1765779637, + "narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1306659b587dc277866c7b69eb97e5f07864d8c4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1774244481, "narHash": "sha256-4XfMXU0DjN83o6HWZoKG9PegCvKvIhNUnRUI19vzTcQ=", @@ -156,7 +271,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1744536153, "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", @@ -172,7 +287,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1766201043, "narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=", @@ -186,7 +301,7 @@ "url": "https://flakehub.com/f/NixOS/nixpkgs/%2A" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1769089682, "narHash": "sha256-9yA/LIuAVQq0lXelrZPjLuLVuZdm03p8tfmHhnDIkms=", @@ -204,9 +319,10 @@ "inputs": { "aagl": "aagl", "darwin": "darwin", + "go-overlay": "go-overlay", "home-manager": "home-manager", "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "rust-overlay": "rust-overlay_2", "swaytreesave": "swaytreesave", "vintage-story": "vintage-story" @@ -232,7 +348,7 @@ }, "rust-overlay_2": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1774321696, @@ -251,7 +367,7 @@ "swaytreesave": { "inputs": { "flake-schemas": "flake-schemas", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1767148467, @@ -267,10 +383,25 @@ "url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git" } }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "vintage-story": { "inputs": { "flake-schemas": "flake-schemas_2", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1769397199, diff --git a/flake.nix b/flake.nix index 2a55f9e..12b827b 100644 --- a/flake.nix +++ b/flake.nix @@ -12,6 +12,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; rust-overlay.url = "github:oxalica/rust-overlay"; + go-overlay.url = "github:purpleclay/go-overlay"; aagl = { url = "github:ezKEa/aagl-gtk-on-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -29,6 +30,7 @@ darwin, home-manager, rust-overlay, + go-overlay, aagl, swaytreesave, vintage-story, @@ -43,6 +45,7 @@ myOverlays = { ... }: { nixpkgs.overlays = [ rust-overlay.overlays.default + go-overlay.overlays.default aagl.overlays.default self.common.overlays ]; @@ -203,6 +206,7 @@ { nixpkgs.overlays = [ rust-overlay.overlays.default + go-overlay.overlays.default self.common.overlays ]; } diff --git a/home/packages/workstation.nix b/home/packages/workstation.nix index 083eab9..acf6cbb 100644 --- a/home/packages/workstation.nix +++ b/home/packages/workstation.nix @@ -18,7 +18,6 @@ fh kubectl # kube config is deliberately not included kubectx - obsidian vscode yt-dlp weechat @@ -29,5 +28,10 @@ deadnix alejandra statix + gh + ghDashLatest + diffNavLatest + ] ++ lib.optionals isNixOS [ + obsidian ]; } diff --git a/modules/common/overlays.nix b/modules/common/overlays.nix index a8978ef..5969180 100644 --- a/modules/common/overlays.nix +++ b/modules/common/overlays.nix @@ -1,6 +1,9 @@ final: prev: let - # Use latest rust from overlay which should work on non-NixOS rust_latest = prev.rust-bin.stable.latest.default; + golang_latest = prev.go-bin.latestStable; + buildGoModuleLatest = prev.buildGoModule.override { + go = golang_latest; + }; myRustPlatform = prev.makeRustPlatform { cargo = rust_latest; rustc = rust_latest; @@ -62,4 +65,53 @@ in { # "-X github.com/derailed/k9s/version.BuildSource=nix" # ]; # }); + + ghDashLatest = (prev.gh-dash.override { + buildGoModule = buildGoModuleLatest; + }).overrideAttrs (oldAttrs: rec { + version = "4.23.2"; + src = prev.fetchFromGitHub { + owner = "dlvhdr"; + repo = "gh-dash"; + rev = "v${version}"; + hash = "sha256-C06LPVoE23ITJpMG0x75Djgeup+eb5uYwA8wL7xxvWU="; + }; + + vendorHash = "sha256-4AbeoH0l7eIS7d0yyJxM7+woC7Q/FCh0BOJj3d1zyX4="; + doCheck = false; + checkFlags = [ + "-skip=TestFullOutput" + ]; + + ldflags = [ + "-s" + "-w" + "-X github.com/dlvhdr/gh-dash/v4/cmd.Version=${version}" + ]; + + passthru = (oldAttrs.passthru or {}) // { + tests = { + version = oldAttrs.testers.testVersion { package = final.ghDashLatest; }; + }; + }; + }); + + diffNavLatest = (prev.diffnav.override { + buildGoModule = buildGoModuleLatest; + }).overrideAttrs (_: rec { + version = "0.10.0"; + src = prev.fetchFromGitHub { + owner = "dlvhdr"; + repo = "diffnav"; + rev = "v${version}"; + hash = "sha256-6VtAQzZNLQrf8QYVXxLUgb3F6xguFDbwaE9kahPhbSE="; + }; + + vendorHash = "sha256-gmmckzR0D1oFuTG5TAb6gLMoNbcZl9EsjbFjhPfJqnQ="; + + ldflags = [ + "-s" + "-w" + ]; + }); }