snix/users/sterni/acme/plumb/tvl
sterni 9f6d4306f7 style(sterni/acme/plumb): use tabs to separate the fields
This is convention in Plan 9 and e.g. the plumber will reformat the
rules this way when they are read back via `9p read plumb/rules`.

Change-Id: I53543d774c11789c8352e2e632678313037c5555
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13048
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
2025-01-24 14:48:54 +00:00

78 lines
2 KiB
Text

# TODO(sterni): document TVL short links,
# for now see //tools/cheddar, //web/atward, //tools/magrathea
# and //ops/modules/monorepo-gerrit.
# TVL short links that go to the browser, e.g. cl/8413, b/187
type is text
data matches 'cl/([0-9]+)'
data set https://cl.tvl.fyi/c/depot/+/$1
plumb to web
plumb start web $data
type is text
data matches 'b/([0-9]+)'
data set https://b.tvl.fyi/issues/$1
plumb to web
plumb start web $data
# TVL revision short links e.g. r/9000, r/3
type is text
data matches 'r/([0-9]+)'
data set refs/r/$1
plumb start rc -c 'cd '$wdir'; cd `{git rev-parse --show-toplevel} && git show --pretty=fuller '$data' | plumb -i -d edit -a ''action=showdata filename=+git/'$data''' '
# TVL target short links
# TODO(sterni): implement subtargets
# TODO(sterni): can we add an acme address to target paths somehow?
# TODO(sterni): look at //tools/magrathea's parsing.
# TODO(sterni): only be strict at the boundary
depotpathchar = '[^:.,;!?"''`|~(){}\[\]<> ]'
depotpath = '//('$depotpathchar'+)'
# TVL short links to files in depot, open in local editor, e.g.
#
# - //users/sterni/acme/plumb/tvl,
# - //default.nix,
# - //nix/readTree/README.md,
# - //tools/magrathea/mg.scm
#
# We impose the same restrictions for the initial path,
# but are liberal in the file name
type is text
data matches '//('$depotchar'+/)?([^ ]*'$depotpathchar')'
arg isfile $depot/$1$2
data set $file
plumb to edit
plumb client $editor
# TVL short links to directories in depot, mapped to default.nix, e.g. //nix/readTree
type is text
data matches $depotpath
arg isfile $depot/$1/default.nix
data set $file
plumb to edit
plumb client $editor
# TVL short links to targets that aren't expressed by default.nix, e.g. //third_party/lisp/alexandria
type is text
data matches $depotpath
arg isfile $depot/$1.nix
data set $file
plumb to edit
plumb client $editor
# TVL short links to directories in depot (without default.nix), e.g. //ops/machines
type is text
data matches $depotpath
arg isdir $depot/$1
data set $dir
plumb to edit
plumb client $editor