Files
watson-starship/README.md
2025-03-07 12:32:22 +01:00

2.2 KiB

watson-starship

A simple plugin for Starship, which shows the elapsed time of the current watson project.

Why?

Unfortunately watson status itself is just too verbose. I only need the hours elapsed. Manipulating the output were too slow, it lead to a partially hanging prompt.

I tried several variants, among these:

# using sed
command = "watson status -e | sed -e 's/ ago//' -e 's/ seconds/s/' -e 's/ minutes/m/' -e 's/ hours/h/' -e 's/just now/0/'"

# use perl to parse the status file directly
command = 'perl -n -e "if (/start.: (\d+)/) { \$diff = (time - \$1) / 3600; printf \"%.02fh\n\", \$diff; }" < ~/.config/watson/state'

# use bash, date and https://github.com/TLINDEN/rpnc direclty on the status file
command = 'if [[ "$(grep start ~/.config/watson/state)" =~ ([0-9]+) ]]; then echo $(("$(date +%s)" - "${BASH_REMATCH[1]}")) 3600 / | rpn; fi'

This lille tool here is written in go, reasonably fast, it parses the watson JSON status file directly, calculates the elapsed time since the start of the running project and prints it. Pretty simple.

Setup

You'll need the Golang toolchain for this (version 1.23+).

To build:

git clone https://github.com/TLINDEN/watson-starship.git
cd watson-starship
make
make install

Then add this to your ~/.config/starship.toml:

[custom.watson]
when = "watson status  -e | grep -v 'No project'"
style = "green"
command = 'watson-starship'
format = '\[[$output]($style)\]'

And add ${custom.watson}\ to your global format setting.

Getting help

Although I'm happy to hear from watson-starship users in private email, that's the best way for me to forget to do something.

In order to report a bug, unexpected behavior, feature requests or to submit a patch, please open an issue on github: https://github.com/TLINDEN/watson-starship/issues.

This software is licensed under the GNU GENERAL PUBLIC LICENSE version 3.

Authors

T.v.Dein

Project homepage

https://github.com/TLINDEN/watson-starship

Licensed under the GNU GENERAL PUBLIC LICENSE version 3.

Author

T.v.Dein