about summary refs log tree commit diff stats
path: root/modules/by-name/ti
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/ti')
-rw-r--r--modules/by-name/ti/timewarrior/module.nix13
-rw-r--r--modules/by-name/ti/timewarrior/nord.theme.license9
-rwxr-xr-xmodules/by-name/ti/timewarrior/taskwarrior_hooks/on-modify.track-timewarrior.py (renamed from modules/by-name/ti/timewarrior/taskwarirror_hooks/on-modify.track-timewarrior.py)27
-rwxr-xr-xmodules/by-name/ti/timewarrior/taskwarrior_hooks/on-modify.track-total-active-time.py (renamed from modules/by-name/ti/timewarrior/taskwarirror_hooks/on-modify.track-total-active-time.py)39
4 files changed, 36 insertions, 52 deletions
diff --git a/modules/by-name/ti/timewarrior/module.nix b/modules/by-name/ti/timewarrior/module.nix
index bb4d8e26..90a541d8 100644
--- a/modules/by-name/ti/timewarrior/module.nix
+++ b/modules/by-name/ti/timewarrior/module.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
   config,
   lib,
@@ -18,7 +27,7 @@
     ];
     dontUnpack = true;
     installPhase = ''
-      install -Dm755 ${./taskwarirror_hooks/on-modify.track-timewarrior.py} $out/bin/track-timewarrior
+      install -Dm755 ${./taskwarrior_hooks/on-modify.track-timewarrior.py} $out/bin/track-timewarrior
       wrapProgram $out/bin/track-timewarrior \
       --set PATH ${lib.makeBinPath [pkgs.taskwarrior3 pkgs.timewarrior]}
     '';
@@ -36,7 +45,7 @@
     ];
     dontUnpack = true;
     installPhase = ''
-      install -Dm755 ${./taskwarirror_hooks/on-modify.track-total-active-time.py} $out/bin/track-total-active-time
+      install -Dm755 ${./taskwarrior_hooks/on-modify.track-total-active-time.py} $out/bin/track-total-active-time
       wrapProgram $out/bin/track-total-active-time \
       --set PATH ${lib.makeBinPath [pkgs.taskwarrior3]}
     '';
diff --git a/modules/by-name/ti/timewarrior/nord.theme.license b/modules/by-name/ti/timewarrior/nord.theme.license
new file mode 100644
index 00000000..eae6a84c
--- /dev/null
+++ b/modules/by-name/ti/timewarrior/nord.theme.license
@@ -0,0 +1,9 @@
+nixos-config - My current NixOS configuration
+
+Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+SPDX-License-Identifier: GPL-3.0-or-later
+
+This file is part of my nixos-config.
+
+You should have received a copy of the License along with this program.
+If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
diff --git a/modules/by-name/ti/timewarrior/taskwarirror_hooks/on-modify.track-timewarrior.py b/modules/by-name/ti/timewarrior/taskwarrior_hooks/on-modify.track-timewarrior.py
index 0bef8bc2..3b42b3f2 100755
--- a/modules/by-name/ti/timewarrior/taskwarirror_hooks/on-modify.track-timewarrior.py
+++ b/modules/by-name/ti/timewarrior/taskwarrior_hooks/on-modify.track-timewarrior.py
@@ -1,30 +1,15 @@
 #!/usr/bin/env python3
 
-###############################################################################
+# nixos-config - My current NixOS configuration
 #
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
 # Copyright 2016 - 2021, 2023, Gothenburg Bit Factory
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
+# This file is part of my nixos-config.
 #
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-#
-# https://www.opensource.org/licenses/mit-license.php
-#
-###############################################################################
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 
 import json
 import subprocess
diff --git a/modules/by-name/ti/timewarrior/taskwarirror_hooks/on-modify.track-total-active-time.py b/modules/by-name/ti/timewarrior/taskwarrior_hooks/on-modify.track-total-active-time.py
index b98e02fc..303a5c57 100755
--- a/modules/by-name/ti/timewarrior/taskwarirror_hooks/on-modify.track-total-active-time.py
+++ b/modules/by-name/ti/timewarrior/taskwarrior_hooks/on-modify.track-total-active-time.py
@@ -1,8 +1,17 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
+# nixos-config - My current NixOS configuration
+#
 # Copyright (C) 2016-present Arctic Ice Studio <development@arcticicestudio.com>
 # Copyright (C) 2016-present Sven Greb <development@svengreb.de>
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 
 # Project:    igloo
 # Repository: https://github.com/arcticicestudio/igloo
@@ -30,7 +39,6 @@ This hook is a fork from `kostajh/taskwarrior-time-tracking-hook`_
 
 import datetime
 import json
-import re
 import sys
 import subprocess
 from typing import TypeVar
@@ -40,9 +48,6 @@ UDA_KEY = "total_active_time"
 
 MAX_ACTIVE = 1
 
-"""Compiled regular expression for the duration as ISO-8601 formatted string."""
-ISO8601DURATION = re.compile("P((\d*)Y)?((\d*)M)?((\d*)D)?T((\d*)H)?((\d*)M)?((\d*)S)?")
-
 """The duration type either as integer (in seconds), as ISO-8601 formatted string ("PT1H10M31S") or the seconds suffixed with "seconds"."""
 DurationType = TypeVar("DurationType", str, int)
 
@@ -54,31 +59,7 @@ def duration_str_to_time_delta(duration_str: DurationType) -> datetime.timedelta
     :return: The duration as timedelta object
     """
     if duration_str.startswith("P"):
-        match = ISO8601DURATION.match(duration_str)
-        if match:
-            year = match.group(2)
-            month = match.group(4)
-            day = match.group(6)
-            hour = match.group(8)
-            minute = match.group(10)
-            second = match.group(12)
-            value = 0
-            if second:
-                value += int(second)
-            if minute:
-                value += int(minute) * 60
-            if hour:
-                value += int(hour) * 3600
-            if day:
-                value += int(day) * 3600 * 24
-            if month:
-                # Assume a month is 30 days for now.
-                value += int(month) * 3600 * 24 * 30
-            if year:
-                # Assume a year is 365 days for now.
-                value += int(year) * 3600 * 24 * 365
-        else:
-            value = int(duration_str)
+        value = datetime.fromisoformat(duration_str)
     elif duration_str.endswith("seconds"):
         value = int(duration_str.rstrip("seconds"))
     else: