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
commandhere 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
commandandexecutableto 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 largeswitchstatements that unconditionally import the code. That might help significantly with overall binary size.$ strings bin/check | grep -i grpc | wc -l 2049