#!/bin/sh set -eu if [ $# != 1 ]; then echo >&2 E: Need exactly one argument. return 1 fi TSK="$1" DATA="$(task _get "$TSK".data)" DATATYPE="${DATA%%:*}" DATAPAYL="${DATA#*:}" case "$DATATYPE" in ('') echo >&2 I: No link data available for this task. task "$TSK" ;; (msgid) mutt -f =store -e "push '~i $DATAPAYL'" ;; (url) sensible-browser "$DATAPAYL" ;; (file) if eval test -f "$DATAPAYL"; then case "$(file --mime-type "$DATAPAYL")" in (*": text/"*) eval sensible-editor "$DATAPAYL";; (*) eval run-mailcap --action=edit "$DATAPAYL";; esac fi ;; (*) eval run-mailcap --action=edit "$DATAPAYL" ;; esac