The original perl implementation of tagtime. I packaged it to the point of being able to use it on my system, in a very barebones state. The configuration is … well it just assumes you have a perl file somewhere and it evals it at startup. Since that configuration needs access to the distpath of tagtime, we just patch it a bit for now (which also means no user configuration is possible atm). The main changes to the config are: - instead of defaulting to `vim`, we use `$EDITOR` - The log file is placed in `$HOME/.local/share/tagtime/pings.log` (which corresponds to `$XDG_DATA_HOME` on normal unix systems), but could be patched to use the real logic instead.main
parent
12a53e95a6
commit
f89427f939
@ -0,0 +1,79 @@ |
||||
{ lib, stdenv, fetchFromGitHub, perl, xterm, coreutils }: |
||||
|
||||
stdenv.mkDerivation { |
||||
pname = "tagtime"; |
||||
version = "2018-09-02"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "tagtime"; |
||||
repo = "TagTime"; |
||||
rev = "59343e2cbe451eb16109e782c194ccbd0ee4196d"; |
||||
sha256 = "1xpmra3f9618b0gajfxqh061r4phkiklvcgpglsyx82bhmgf9n1f"; |
||||
}; |
||||
|
||||
buildInputs = [ |
||||
perl |
||||
]; |
||||
|
||||
installPhase = '' |
||||
runHook preInstall |
||||
|
||||
mkdir -p $out/{libexec,bin} |
||||
|
||||
# We don’t support a config file for now, |
||||
# since it’s not entirely clear how to split nix-set paths |
||||
# from the actual config options. |
||||
for pl in *.pl; do |
||||
substituteInPlace "$pl" \ |
||||
--replace 'require "$ENV{HOME}/.tagtimerc";' \ |
||||
'require "${placeholder "out"}/libexec/settings.pl";' |
||||
done; |
||||
|
||||
install tagtimed.pl $out/bin/tagtimed |
||||
|
||||
substituteInPlace util.pl \ |
||||
--replace '/usr/bin/touch' \ |
||||
'${coreutils}/bin/touch' \ |
||||
--replace '/bin/rm -f $lockf' \ |
||||
'${coreutils}/bin/rm -f $lockf' \ |
||||
--replace '$lockf = "''${path}tagtime.lock";' \ |
||||
'mkdir "$ENV{HOME}/.cache/tagtime"; |
||||
$lockf = "$ENV{HOME}/.cache/tagtime/tagtime.lock";' |
||||
|
||||
mv *.pl $out/libexec/ |
||||
mv template.tsk $out/libexec/ |
||||
|
||||
|
||||
# set the default template arguments to sane defaults. |
||||
substitute settings.pl.template $out/libexec/settings.pl \ |
||||
--replace '"__USER__"' \ |
||||
'getlogin()' \ |
||||
--replace '"__PATH__"' \ |
||||
'"${placeholder "out"}/libexec/"' \ |
||||
--replace '$logf = "$path$usr.log";' \ |
||||
'mkdir "$ENV{HOME}/.local/share/tagtime"; |
||||
$logf = "$ENV{HOME}/.local/share/tagtime/pings.log";' \ |
||||
--replace '"__ED__ +"' \ |
||||
'$ENV{"EDITOR"}' \ |
||||
--replace '"__XT__"' \ |
||||
'"${xterm}/bin/xterm"' |
||||
|
||||
runHook postInstall |
||||
''; |
||||
|
||||
meta = { |
||||
description = "Stochastic Time Tracking for Space Cadets"; |
||||
longDescription = '' |
||||
To determine how you spend your time, TagTime literally randomly samples |
||||
you. At random times it pops up and asks what you're doing right at that |
||||
moment. You answer with tags. |
||||
|
||||
See https://messymatters.com/tagtime for the whole story. |
||||
|
||||
[maintainer’s note]: This is the original perl script implementation. |
||||
''; |
||||
homepage = "http://messymatters.com/tagtime/"; |
||||
license = lib.licenses.bsd3; |
||||
maintainers = [ lib.maintainers.Profpatsch ]; |
||||
}; |
||||
} |
Loading…
Reference in new issue