tagtime: init at 2018-09-02

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
Profpatsch 2 years ago
parent 12a53e95a6
commit f89427f939
  1. 79
      pkgs/applications/misc/tagtime/default.nix
  2. 2
      pkgs/top-level/all-packages.nix

@ -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.
[maintainers note]: This is the original perl script implementation.
'';
homepage = "http://messymatters.com/tagtime/";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.Profpatsch ];
};
}

@ -10048,6 +10048,8 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) IOKit;
};
tagtime = callPackage ../applications/misc/tagtime { };
inherit (callPackages ../applications/networking/taler { })
taler-exchange taler-merchant;

Loading…
Cancel
Save