Compare commits

..

No commits in common. "0fe4662551c34418dedf5aab996e2e9d712d3c71" and "72629f5b989650dd0ac04ccef0e7943ad7d8216a" have entirely different histories.

9 changed files with 69 additions and 50 deletions

View File

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

View File

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

View File

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

14
.config/task/taskrc.d/setup.sh Executable file
View File

@ -0,0 +1,14 @@
#!/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

@ -0,0 +1,25 @@
#!/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

@ -1,32 +0,0 @@
#!/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

@ -0,0 +1,26 @@
#!/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

@ -1,12 +0,0 @@
#!/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"

View File

@ -2,6 +2,6 @@ snippet fne "Filename (+extension)" i
`!p snip.rv = snip.fn` `!p snip.rv = snip.fn`
endsnippet endsnippet
# snippet ^fn "Filename basename" ir snippet fn "Filename basename" i
# `!p snip.rv = snip.basename` `!p snip.rv = snip.basename`
endsnippet endsnippet