summaryrefslogtreecommitdiff
path: root/fish
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-06-18 08:03:32 +0300
committerPaul Buetow <paul@buetow.org>2026-06-18 08:03:32 +0300
commit6ff6493a58fa7dd203238dd1ace9f97c7afddbf2 (patch)
treee201e8cd6ca532fb0a080a549b4ae049ba9a6a42 /fish
parentfa558cbce505c8f4030e3a064d19671a6cbd35e3 (diff)
worktime: move uprecords collect/import into hidden worktime-repo script
Host-specific upload details now live in ~/git/worktime/.uprecords-sync.sh (kept out of the public dotfiles repo). worktime::supersync calls it via sh; f3s skill updated accordingly. Amp-Thread-ID: https://ampcode.com/threads/T-019ed908-ca57-7251-8ff1-ce10c8c3a787 Co-authored-by: Amp <amp@ampcode.com>
Diffstat (limited to 'fish')
-rw-r--r--fish/conf.d/worktime.fish77
1 files changed, 5 insertions, 72 deletions
diff --git a/fish/conf.d/worktime.fish b/fish/conf.d/worktime.fish
index 941a4a8..09c76ce 100644
--- a/fish/conf.d/worktime.fish
+++ b/fish/conf.d/worktime.fish
@@ -48,81 +48,14 @@ function worktime::supersync_sync
cd -
end
-function worktime::uprecords::darwin::collect
- if test (uname) != Darwin
- return
- end
-
- if not test -d $WORKTIME_DIR
- return
- end
-
- set -l uprecords_file
- for candidate in /opt/homebrew/var/uptimed/records /usr/local/var/uptimed/records
- if test -f $candidate
- set uprecords_file $candidate
- break
- end
- end
-
- if test -z "$uprecords_file"
- return
- end
-
- set -l target $WORKTIME_DIR/uprecords-(hostname).records
- cp $uprecords_file $target
- git -C $WORKTIME_DIR add $target
-
- if type -q uprecords
- set -l txt_target $WORKTIME_DIR/uprecords-(hostname).txt
- uprecords >$txt_target
- git -C $WORKTIME_DIR add $txt_target
- end
-end
-
-function worktime::uprecords::darwin::import
- if test (hostname) != earth
- return
- end
-
- if not test -d $WORKTIME_DIR
- return
- end
-
- set -l src_host MBDVXJ4XKH9C
- set -l goprecords_host mega-m3-pro
- set -l base_url https://goprecords.f3s.buetow.org
-
- set -l config_dir (test -n "$XDG_CONFIG_HOME"; and echo $XDG_CONFIG_HOME; or echo ~/.config)
- set -l token_file $config_dir/goprecords-upload-$goprecords_host/token
- if not test -r $token_file
- echo "worktime::uprecords::darwin::import: cannot read $token_file (create the goprecords key for $goprecords_host)" >&2
- return 0
- end
- set -l token (string trim <$token_file)
-
- # Map the file kind (extension) collected in the repo to the goprecords
- # upload kind.
- set -l records_file $WORKTIME_DIR/uprecords-$src_host.records
- set -l txt_file $WORKTIME_DIR/uprecords-$src_host.txt
-
- for pair in records:$records_file txt:$txt_file
- set -l kind (string split -m1 ':' $pair)[1]
- set -l file (string split -m1 ':' $pair)[2]
- if not test -f $file
- continue
- end
- curl -fsS -X PUT --data-binary "@$file" \
- -H "Authorization: Bearer $token" \
- "$base_url/upload/$goprecords_host/$kind"
- end
-end
-
function worktime::supersync
worktime::supersync_sync sync_quotes
taskwarrior::invoke
- worktime::uprecords::darwin::collect
- worktime::uprecords::darwin::import
+ # uprecords collect/import live in the (private) worktime repo so that
+ # host-specific details stay out of the public dotfiles repo. The script
+ # guards internally (collect on Darwin, import on earth).
+ sh $WORKTIME_DIR/.uprecords-sync.sh collect
+ sh $WORKTIME_DIR/.uprecords-sync.sh import
worktime::supersync_sync no_sync_quotes
end