diff --git a/components/cli/.gitignore b/components/cli/.gitignore index 4a65c2279c7..61ba554f2dc 100644 --- a/components/cli/.gitignore +++ b/components/cli/.gitignore @@ -2,3 +2,7 @@ /build/ cli/winresources/rsrc_386.syso cli/winresources/rsrc_amd64.syso +/man/man1/ +/man/man5/ +/man/man8/ +/docs/yaml/gen/ diff --git a/components/cli/Makefile b/components/cli/Makefile index 5fa928f50b6..cda2229dee5 100644 --- a/components/cli/Makefile +++ b/components/cli/Makefile @@ -7,13 +7,13 @@ all: binary # remove build artifacts .PHONY: clean clean: - @rm -rf ./build/* cli/winresources/rsrc_* + @rm -rf ./build/* cli/winresources/rsrc_* ./man/man[1-9] docs/yaml/gen # run go test # the "-tags daemon" part is temporary .PHONY: test test: - @go test -tags daemon -v $(shell go list ./... | grep -v /vendor/) + @go test -tags daemon -v $(shell go list ./... | grep -v '/vendor/') .PHONY: lint lint: @@ -42,6 +42,16 @@ vendor: vendor.conf @vndr 2> /dev/null @scripts/validate/check-git-diff vendor +## generate man pages from go source and markdown +.PHONY: manpages +manpages: + @scripts/docs/generate-man.sh + +## generate documentation YAML files consumed by docs repo +.PHONY: yamldocs +yamldocs: + @scripts/docs/generate-yaml.sh + cli/compose/schema/bindata.go: cli/compose/schema/data/*.json go generate github.com/docker/cli/cli/compose/schema diff --git a/components/cli/docker.Makefile b/components/cli/docker.Makefile index 6781a78e5c0..cd98e194672 100644 --- a/components/cli/docker.Makefile +++ b/components/cli/docker.Makefile @@ -68,5 +68,15 @@ lint: build_linter_image vendor: build_docker_image vendor.conf @docker run -ti --rm $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make vendor +## generate man pages from go source and markdown +.PHONY: manpages +manpages: build_docker_image + @docker run -ti --rm $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make manpages + +## Generate documentation YAML files consumed by docs repo +.PHONY: yamldocs +yamldocs: build_docker_image + @docker run -ti --rm $(MOUNTS) $(DEV_DOCKER_IMAGE_NAME) make yamldocs + dynbinary: build_cross_image docker run --rm $(ENVVARS) $(MOUNTS) $(CROSS_IMAGE_NAME) make dynbinary diff --git a/components/cli/man/generate.sh b/components/cli/scripts/docs/generate-man.sh similarity index 53% rename from components/cli/man/generate.sh rename to components/cli/scripts/docs/generate-man.sh index 905b2d7baf6..e955130559f 100755 --- a/components/cli/man/generate.sh +++ b/components/cli/scripts/docs/generate-man.sh @@ -7,6 +7,16 @@ set -eu mkdir -p ./man/man1 +MD2MAN_REPO=github.com/cpuguy83/go-md2man +MD2MAN_COMMIT=$(grep -F "$MD2MAN_REPO" vendor.conf | cut -d' ' -f2) + +( + go get -d "$MD2MAN_REPO" + cd "$GOPATH"/src/"$MD2MAN_REPO" + git checkout "$MD2MAN_COMMIT" &> /dev/null + go install "$MD2MAN_REPO" +) + # Generate man pages from cobra commands go build -o /tmp/gen-manpages ./man /tmp/gen-manpages --root . --target ./man/man1 diff --git a/components/cli/scripts/docs/generate-yaml.sh b/components/cli/scripts/docs/generate-yaml.sh new file mode 100755 index 00000000000..c322071bcfc --- /dev/null +++ b/components/cli/scripts/docs/generate-yaml.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +go build -o build/yaml-docs-generator github.com/docker/cli/docs/yaml +mkdir docs/yaml/gen +build/yaml-docs-generator --root $(pwd) --target $(pwd)/docs/yaml/gen