Skip to content

Instantly share code, notes, and snippets.

@linuxcaffe
linuxcaffe / Makefile
Created November 14, 2021 02:45
hledger+pandoc invoice generator
INVOICECMD=./mkinvoice client.md work.client.dev assets:receivable:client:reimbursement
client-dry:
$(INVOICECMD)
client:
$(INVOICECMD) -m -p
@read -p "press enter to commit, or ctrl-c to cancel: "
$(INVOICECMD) -c
@linuxcaffe
linuxcaffe / on-modify.timetrack.py
Created November 10, 2021 21:17 — forked from wbsch/on-modify.timetrack.py
Time tracking hook script for Taskwarrior that outputs ledger timelog formatted data.
#!/usr/bin/env python
#
# Writes task start/stop times to a timelog formatted file.
# You might need to adjust LEDGERFILE, or set the TIMELOG environment variable.
#
# Example reports, after using start/stop on a task:
# ledger -f /path/to/timelog.ledger print
# ledger -f /path/to/timelog.ledger register
#
# Projects, tags, and UUIDs are fully supported and queryable from ledger.
@linuxcaffe
linuxcaffe / on-launch_stopstarted.sh
Created June 1, 2019 23:19 — forked from wbsch/on-launch_stopstarted.sh
Taskwarrior hook that stops all active tasks when "task FILTER start" is run. PoC for https://bug.tasktools.org/browse/TW-1712
#!/usr/bin/env bash
# Stops all previously active tasks on "task FILTER start"
#
# Only pending tasks are checked/stopped. If you really want to stop
# started tasks that are completed/deleted, remove the status:pending
# filter. Note that this will decrease performance, and should not
# be necessary.
tw_command=""
for i in "$@"; do
#!/usr/bin/env python3
#
# Save as on-add_annotate.py in hooks directory, then:
# $ chmod +x ~/.task/hooks/on-add_annotate.py
#
# Anything after "annotate:" in a new task's description is added as an
# annotation:
# $ task add this is the description annotate:this is an annotation
import json
@linuxcaffe
linuxcaffe / on-exit_git.py
Created November 24, 2016 05:41 — forked from wbsch/on-exit_git.py
Proof of concept for a Taskwarrior on-exit hook that manages a git repository in ~/.task
#!/usr/bin/env python
#
# PoC: Manage a git repository in ~/.task that gets updated on changes.
# Only pending.data and completed.data are included by default.
# You can use "git add" to add whatever files you want to track in your
# task folder.
#
# Inspired by https://gist.github.com/Unode/9366218
#
# Works with any Taskwarrior version that supports hooks.
@linuxcaffe
linuxcaffe / on-add_inline_tags.py
Last active September 4, 2015 05:53 — forked from wbsch/on-add_inline_tags.py
Proof of concept for a Taskwarrior on-add hook that allows for "inline tags" when adding tasks
#!/usr/bin/env python
#
# PoC for "inline tags", as described in TW-1357
# https://bug.tasktools.org/browse/TW-1357
#
# Turns
# $ task add I saw @bob in the @garden
# Into the equivalent of
# $ task add I saw bob in the garden +bob +garden