37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
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.
|
|
```
|