set script (realpath (status --current-filename)) if pgrep -f $script >/dev/null 2>/dev/null exit 0 end function tempfile if command -v mktemp >/dev/null 2>/dev/null command mktemp else command tempfile end end set MONITOR_TEMP_FILE (tempfile) set MONITOR_PID_FILE (tempfile) function duraMonitor pkill -P (cat $MONITOR_PID_FILE) 2>/dev/null pkill (cat $MONITOR_PID_FILE) 2>/dev/null echo ' set repos (cat ~/.config/dura/config.json | jq -rc \'.repos | keys | join("§")\' 2>/dev/null) set pollingSeconds (cat ~/.config/dura/config.json | jq -r ".pollingSeconds // 5") fswatch -e .git -0 -l $pollingSeconds -r (string split "§" -- $repos) | while read -l -z path cd $path 2>/dev/null || cd (dirname $path) && cd (git rev-parse --show-toplevel) && dura capture end ' >$MONITOR_TEMP_FILE fish $MONITOR_TEMP_FILE & jobs -p >$MONITOR_PID_FILE end duraMonitor fswatch -0 -l 3 ~/.config/dura/config.json | while read -l -z path duraMonitor end