From 5cc1a49b19fd6f28f38d07df864988c3b0e348cd Mon Sep 17 00:00:00 2001
From: 6543 <6543@obermui.de>
Date: Wed, 24 Feb 2021 23:36:48 +0100
Subject: [PATCH] Generate man pages (#13901)

* extend gitignore

* first working draft

* use docs subcomand

* rm config-sheet-sheet-2-man
---
 .gitignore |  3 +++
 Makefile   | 11 ++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 8d8863546a..2cb2a205e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -106,3 +106,6 @@ prime/
 
 # Make evidence files
 /.make_evidence
+
+# Manpage
+/man
diff --git a/Makefile b/Makefile
index 9a4f8297b0..d19e8d6716 100644
--- a/Makefile
+++ b/Makefile
@@ -178,6 +178,7 @@ help:
 	@echo " - fmt                              format the Go code"
 	@echo " - generate-license                 update license files"
 	@echo " - generate-gitignore               update gitignore files"
+	@echo " - generate-manpage                 generate manpage"
 	@echo " - generate-swagger                 generate the swagger spec from code comments"
 	@echo " - swagger-validate                 check if the swagger spec is valid"
 	@echo " - golangci-lint                    run golangci-lint linter"
@@ -223,7 +224,7 @@ clean:
 		integrations*.test \
 		integrations/gitea-integration-pgsql/ integrations/gitea-integration-mysql/ integrations/gitea-integration-mysql8/ integrations/gitea-integration-sqlite/ \
 		integrations/gitea-integration-mssql/ integrations/indexers-mysql/ integrations/indexers-mysql8/ integrations/indexers-pgsql integrations/indexers-sqlite \
-		integrations/indexers-mssql integrations/mysql.ini integrations/mysql8.ini integrations/pgsql.ini integrations/mssql.ini
+		integrations/indexers-mssql integrations/mysql.ini integrations/mysql8.ini integrations/pgsql.ini integrations/mssql.ini man/
 
 .PHONY: fmt
 fmt:
@@ -702,6 +703,14 @@ generate-images:
 	npm install --no-save --no-package-lock fabric imagemin-zopfli
 	node build/generate-images.js $(TAGS)
 
+.PHONY: generate-manpage
+generate-manpage:
+	@[ -f gitea ] || make backend
+	@mkdir -p man/man1/ man/man5
+	@./gitea docs --man > man/man1/gitea.1
+	@gzip -9 man/man1/gitea.1 && echo man/man1/gitea.1.gz created
+	@#TODO A smal script witch format config-cheat-sheet.en-us.md nicely to suit as config man page
+
 .PHONY: pr\#%
 pr\#%: clean-all
 	$(GO) run contrib/pr/checkout.go $*