about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/office/timetrap/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/office/timetrap/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/office/timetrap/default.nix50
1 files changed, 44 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/applications/office/timetrap/default.nix b/nixpkgs/pkgs/applications/office/timetrap/default.nix
index 579c9e115be8..7ece5e9b4b03 100644
--- a/nixpkgs/pkgs/applications/office/timetrap/default.nix
+++ b/nixpkgs/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";