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.
This commit is contained in:
parent
12a53e95a6
commit
f89427f939
79
pkgs/applications/misc/tagtime/default.nix
Normal file
79
pkgs/applications/misc/tagtime/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
@ -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…
Reference in New Issue
Block a user