Update taskwarrior sync setup
							parent
							
								
									ed44636981
								
							
						
					
					
						commit
						0fe4662551
					
				| 
						 | 
				
			
			@ -1 +1 @@
 | 
			
		|||
taskrc.d/server
 | 
			
		||||
taskrc.d/sync
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
recurrence=off
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			@ -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"
 | 
			
		||||
		Loading…
	
		Reference in New Issue