diff --git a/BUILD b/BUILD index 2323871..d423f61 100644 --- a/BUILD +++ b/BUILD @@ -9,6 +9,7 @@ go_library( visibility = ["//visibility:private"], deps = [ "//src/undocker/internal/cmdlxcconfig:go_default_library", + "//src/undocker/internal/cmdmanpage:go_default_library", "//src/undocker/internal/cmdrootfs:go_default_library", "@com_github_jessevdk_go_flags//:go_default_library", ], diff --git a/internal/cmdmanpage/BUILD b/internal/cmdmanpage/BUILD new file mode 100644 index 0000000..170c14e --- /dev/null +++ b/internal/cmdmanpage/BUILD @@ -0,0 +1,9 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["cmdmanpage.go"], + importpath = "github.com/motiejus/code/undocker/internal/cmdmanpage", + visibility = ["//src/undocker:__subpackages__"], + deps = ["@com_github_jessevdk_go_flags//:go_default_library"], +) diff --git a/internal/cmdmanpage/cmdmanpage.go b/internal/cmdmanpage/cmdmanpage.go new file mode 100644 index 0000000..3788480 --- /dev/null +++ b/internal/cmdmanpage/cmdmanpage.go @@ -0,0 +1,25 @@ +package cmdmanpage + +import ( + "io" + "os" + + goflags "github.com/jessevdk/go-flags" +) + +type Command struct { + parser *goflags.Parser + stdout io.Writer +} + +func NewCommand(parser *goflags.Parser) *Command { + return &Command{ + parser: parser, + stdout: os.Stdout, + } +} + +func (c *Command) Execute(args []string) error { + c.parser.WriteManPage(c.stdout) + return nil +} diff --git a/main.go b/main.go index 8b6c162..9981157 100644 --- a/main.go +++ b/main.go @@ -5,18 +5,22 @@ import ( goflags "github.com/jessevdk/go-flags" "github.com/motiejus/code/undocker/internal/cmdlxcconfig" + "github.com/motiejus/code/undocker/internal/cmdmanpage" "github.com/motiejus/code/undocker/internal/cmdrootfs" ) func main() { - flags := goflags.NewParser(nil, goflags.Default) + parser := goflags.NewParser(nil, goflags.Default) rootfs := cmdrootfs.NewCommand() lxcconfig := cmdlxcconfig.NewCommand() - flags.AddCommand("rootfs", rootfs.ShortDesc(), rootfs.LongDesc(), rootfs) - flags.AddCommand("lxcconfig", lxcconfig.ShortDesc(), lxcconfig.LongDesc(), lxcconfig) + manpage := cmdmanpage.NewCommand(parser) + parser.AddCommand("rootfs", rootfs.ShortDesc(), rootfs.LongDesc(), rootfs) + parser.AddCommand("lxcconfig", lxcconfig.ShortDesc(), lxcconfig.LongDesc(), lxcconfig) + m, _ := parser.AddCommand("man-page", "", "", manpage) + m.Hidden = true - _, err := flags.Parse() + _, err := parser.Parse() if err != nil { os.Exit(1) }