def gap
import ezx@1.11.0.0/src/share/pin.bend as Pinimport Base
import ezx@1.11.0.0/src/ledger/manifest.bend as M
25# why a plain lock cannot copy a pin as it stands, or "" when it can. A pin
26# with no repo has nothing to pin, under a plain lock or an upgrade.
27def gap(pin: M.Tool) -> String:
28 M.Tool{n, _e, _b, s} = pin
29 match s:
30 case M.Hub{_named}:
31 "ez: tools." ++ n ++ " has no git"
32 case M.Git{_url, rev, _tag, _root, nar, _vend}:
33 gap.git(String.is_empty(rev), String.is_empty(nar), n)
34 case M.Member{_path, _named}:
35 "ez: tools." ++ n ++ " has no git"