about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--default.nix1
-rw-r--r--pkgs/projectdo/default.nix55
2 files changed, 56 insertions, 0 deletions
diff --git a/default.nix b/default.nix
index 262772e..ab2cddb 100644
--- a/default.nix
+++ b/default.nix
@@ -19,4 +19,5 @@
   emacs-unlimited-select = pkgs.callPackage ./pkgs/emacs-unlimited-select { };
   porto = pkgs.callPackage ./pkgs/porto { };
   vanity-imports = pkgs.callPackage ./pkgs/vanity-imports { };
+  projectdo = pkgs.callPackage ./pkgs/projectdo { };
 }
diff --git a/pkgs/projectdo/default.nix b/pkgs/projectdo/default.nix
new file mode 100644
index 0000000..b80de95
--- /dev/null
+++ b/pkgs/projectdo/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, ncurses
+, nodejs
+, pnpm
+, yarn
+, just
+,
+}:
+let
+  rev = "27c6fbc7fa534ce891db75361f2d2a27db64bb63";
+in
+stdenv.mkDerivation rec {
+  pname = "projectdo";
+  version = "unstable-2025-03-08";
+
+  src = fetchFromGitHub {
+    owner = "paldepind";
+    repo = "projectdo";
+    inherit rev;
+    hash = "sha256-ZBAzHo7/Sy8uyjWganSFs/uOJkmuDP8WxU3WVGttPTo=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  doCheck = true;
+  checkPhase = ''
+    make test
+  '';
+
+  nativeBuildInputs = [
+    ncurses
+    nodejs
+    pnpm
+    yarn
+    just
+  ];
+
+  installPhase = ''
+    make PREFIX=$out install
+    install -D functions/* -t $out/share/fish/vendor_functions.d
+    install -D completions/* -t $out/share/fish/vendor_completions.d
+  '';
+
+  meta = {
+    description = "Context-aware single-letter project commands to speed up your terminal workflow";
+    homepage = "https://github.com/paldepind/projectdo";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ alanpearce ];
+    mainProgram = "projectdo";
+    platforms = lib.platforms.all;
+  };
+}