1.4 KiB
1.4 KiB
Code Overview
Here is how the code is laid out.
TODO(tlim): Add a diagram of the layers
cmd/blackbox/ The command line tool.
blackbox.go main()
cli.go Definition of all subcommands and flags
drive.go Processes flags and calls functions in verbs.go
NOTE: These are the only files that are aware of the
flags. Everything else gets the flag data passed to it
as a parameter. This way the remaining system can be
used as a module.
pkg/box/ High-level functions related to "the black box".
verbs.go One function per subcommand.
box.go Functions for manipulating the files in .blackbox
boxutils.go Helper functions for the above.
pkg/bblog/ Module that provides logging facilities.
pkg/bbutil/ Functions that are useful to box, plug-ins, etc.
pkg/tainedname/ Module for printing filenames escaped for Bash.
models/vcs.go The interface that defines a VCS plug-in.
models/crypters.go The interface that defines a GPG plug-in.
pkg/crypters/ Plug-ins for GPG functionality.
pkg/crypters/gnupg Plug-in that runs an external gpg binary (found via $PATH)
pkg/vcs/ Plug-ins for VCS functionality.
pkg/vcs/none Repo-less mode.
pkg/vcs/git Git mode.