timetrap: add shell completions

This commit is contained in:
Matt McHenry 2023-08-30 15:10:58 -04:00
parent d680ded26d
commit 58a476519e

View File

@ -1,11 +1,49 @@
{ lib, bundlerApp, bundlerUpdateScript }: { stdenv
, lib
, pkgs
, bundlerEnv
, bundlerApp
, bundlerUpdateScript
, installShellFiles
}:
bundlerApp { let
pname = "timetrap"; ttBundlerApp = bundlerApp {
gemdir = ./.; pname = "timetrap";
exes = [ "t" "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; { meta = with lib; {
description = "A simple command line time tracker written in ruby"; description = "A simple command line time tracker written in ruby";