summary refs log tree commit diff
path: root/pkgs/applications/office
diff options
context:
space:
mode:
authorMatt McHenry <github@matt.mchenryfamily.org>2023-08-30 15:10:58 -0400
committerMatt McHenry <github@matt.mchenryfamily.org>2023-09-01 09:58:35 -0400
commit58a476519e5878ae1467452e15c77dd913c21fe2 (patch)
tree9393d66acf4ab11740408a2b4ed084c29e4b4f33 /pkgs/applications/office
parentd680ded26da5cf104dd2735a51e88d2d8f487b4d (diff)
downloadnixpkgs-58a476519e5878ae1467452e15c77dd913c21fe2.tar
nixpkgs-58a476519e5878ae1467452e15c77dd913c21fe2.tar.gz
nixpkgs-58a476519e5878ae1467452e15c77dd913c21fe2.tar.bz2
nixpkgs-58a476519e5878ae1467452e15c77dd913c21fe2.tar.lz
nixpkgs-58a476519e5878ae1467452e15c77dd913c21fe2.tar.xz
nixpkgs-58a476519e5878ae1467452e15c77dd913c21fe2.tar.zst
nixpkgs-58a476519e5878ae1467452e15c77dd913c21fe2.zip
timetrap: add shell completions
Diffstat (limited to 'pkgs/applications/office')
-rw-r--r--pkgs/applications/office/timetrap/default.nix50
1 files changed, 44 insertions, 6 deletions
diff --git a/pkgs/applications/office/timetrap/default.nix b/pkgs/applications/office/timetrap/default.nix
index 579c9e115be..7ece5e9b4b0 100644
--- a/pkgs/applications/office/timetrap/default.nix
+++ b/pkgs/applications/office/timetrap/default.nix
@@ -1,11 +1,49 @@
-{ lib, bundlerApp, bundlerUpdateScript }:
+{ stdenv
+, lib
+, pkgs
+, bundlerEnv
+, bundlerApp
+, bundlerUpdateScript
+, installShellFiles
+}:
 
-bundlerApp {
-  pname = "timetrap";
-  gemdir = ./.;
-  exes = [ "t" "timetrap" ];
+let
+  ttBundlerApp = bundlerApp {
+    pname = "timetrap";
+    gemdir = ./.;
+    exes = [ "t" "timetrap" ];
 
-  passthru.updateScript = bundlerUpdateScript "timetrap";
+    passthru.updateScript = bundlerUpdateScript "timetrap";
+  };
+
+  ttGem = bundlerEnv {
+    pname = "timetrap";
+    gemdir = ./.;
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "timetrap";
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  installPhase = ''
+    mkdir $out;
+    cd $out;
+
+    mkdir bin; pushd bin;
+    ln -vs ${ttBundlerApp}/bin/t;
+    ln -vs ${ttBundlerApp}/bin/timetrap;
+    popd;
+
+    for c in t timetrap; do
+      installShellCompletion --cmd $c --bash ${ttGem}/lib/ruby/gems/*/gems/timetrap*/completions/bash/*;
+      installShellCompletion --cmd $c --zsh ${ttGem}/lib/ruby/gems/*/gems/timetrap*/completions/zsh/*;
+    done;
+  '';
 
   meta = with lib; {
     description = "A simple command line time tracker written in ruby";