Investigate rearchitecting `command` and `executable` Go modules
The following discussion from !341 (merged) should be addressed:
-
@nick.thomas started a discussion: Pulling in all of
command
here is probably what makes the binary so much larger than it needs to be. We end up with lots of grpc things that are never used inside it.As a follow-up, we might want to look at rearchitecting
command
andexecutable
to be more likedatabase/sql
- i.e., there is a registry, we import specific commands we want to support inpackage main
, and they register themselves against that registry, rather than us having largeswitch
statements that unconditionally import the code. That might help significantly with overall binary size.$ strings bin/check | grep -i grpc | wc -l 2049