Update taskwarrior sync setup

master
Hektor Misplon 2024-09-13 14:17:00 +02:00
parent ed44636981
commit 0fe4662551
Signed by: hektor
GPG Key ID: 5151AF79E723F21C
8 changed files with 48 additions and 67 deletions

View File

@ -1 +1 @@
taskrc.d/server
taskrc.d/sync

View File

@ -1,7 +1,8 @@
data.location=$XDG_DATA_HOME/task/
hooks.location=$XDG_DATA_HOME/task/hooks
include ./taskrc.d/server
include ./taskrc.d/$HOSTNAME
include ./taskrc.d/sync
include /usr/share/doc/task/rc/light-256.theme
color.active=bold white on black

View File

@ -0,0 +1 @@
recurrence=off

View File

@ -1,14 +0,0 @@
#!/usr/bin/env bash
# Evaluate environment variables into `server` config file
source ~/.env
config_file=~/.config/task/taskrc.d/server
echo "taskd.certificate=$XDG_DATA_HOME/task/default-client.cert.pem" > $config_file
echo "taskd.key=$XDG_DATA_HOME/task/default-client.key.pem" >> $config_file
echo "taskd.ca=$XDG_DATA_HOME/task/ca.cert.pem" >> $config_file
echo "taskd.trust=ignore hostname" >> $config_file
echo "taskd.server=$TASKD_SERVER:$TASKD_PORT" >> $config_file
echo "taskd.credentials=$TASKD_CREDS" >> $config_file

View File

@ -1,25 +0,0 @@
#!/bin/sh
# Inspired by https://gist.github.com/primeapple/d3d82fbd28e9134d24819dd72430888e
read new_task
source ~/.env
log_file=./sync.log
is_up() {
if ! nc -z $TASKD_SERVER $TASKD_PORT; then
echo "Server is down" >> $log_file
exit 1
fi
}
is_up
date > $log_file
task rc.verbose:nothing sync >> $log_file &
echo $new_task
echo 'on-add'
exit 0

View File

@ -0,0 +1,32 @@
#!/usr/bin/env python3
# Source: <https://gist.github.com/danmou/83079feac22307813178d7f8c456c544>
# This hooks script syncs task warrior to the configured task server without blocking.
# The on-exit event is triggered once, after all processing is complete.
# Make sure hooks are enabled and this hook script is executable.
# Run `task diag` for diagnostics on the hook.
import json
import subprocess
import sys
try:
tasks = json.loads(sys.stdin.readline())
except:
# No input
pass
# Call the `sync` command
# hooks=0 ensures that the sync command doesn't call the on-exit hook
# verbose=nothing sets the verbosity to print nothing at all
ps_1 = subprocess.Popen(
["task", "rc.hooks=0", "sync"],
stdin=subprocess.PIPE,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
)
sys.exit(0)

View File

@ -1,26 +0,0 @@
#!/bin/sh
# Inspired by https://gist.github.com/primeapple/d3d82fbd28e9134d24819dd72430888e
read original_task
read modified_task
source ~/.env
log_file=./sync.log
is_up() {
if ! nc -z $TASKD_SERVER $TASKD_PORT; then
echo "Server is down" >> $log_file
exit 1
fi
}
is_up
date > $log_file
task rc.verbose:nothing sync >> $log_file &
echo $modified_task
echo 'on-modify'
exit 0

View File

@ -0,0 +1,12 @@
#!/usr/bin/env bash
# Redirect both stdout and stderr to notify-send as is, but set
# urgency to critical if the command fails
output="$(task rc.hooks=0 sync 2>&1)"
ret=$?
if [ $ret -ne 0 ]; then
urgency=critical
else
urgency=normal
fi
notify-send -u $urgency "Taskwarrior sync" "$output"