Skip to content

Commit eee3753

Browse files
committed
Add man generation
1 parent eb9c533 commit eee3753

2 files changed

Lines changed: 52 additions & 25 deletions

File tree

cli/cli.go

Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"pkg.re/essentialkaos/ek.v12/usage/completion/bash"
2727
"pkg.re/essentialkaos/ek.v12/usage/completion/fish"
2828
"pkg.re/essentialkaos/ek.v12/usage/completion/zsh"
29+
"pkg.re/essentialkaos/ek.v12/usage/man"
2930
"pkg.re/essentialkaos/ek.v12/usage/update"
3031

3132
"pkg.re/essentialkaos/sslscan.v13"
@@ -53,7 +54,8 @@ const (
5354
OPT_HELP = "h:help"
5455
OPT_VER = "v:version"
5556

56-
OPT_COMPLETION = "completion"
57+
OPT_COMPLETION = "completion"
58+
OPT_GENERATE_MAN = "generate-man"
5759
)
5860

5961
const (
@@ -101,7 +103,8 @@ var optMap = options.Map{
101103
OPT_HELP: {Type: options.BOOL, Alias: "u:usage"},
102104
OPT_VER: {Type: options.BOOL, Alias: "ver"},
103105

104-
OPT_COMPLETION: {},
106+
OPT_COMPLETION: {},
107+
OPT_GENERATE_MAN: {Type: options.BOOL},
105108
}
106109

107110
var gradeNumMap = map[string]float64{
@@ -139,7 +142,11 @@ func Init() {
139142
}
140143

141144
if options.Has(OPT_COMPLETION) {
142-
genCompletion()
145+
os.Exit(genCompletion())
146+
}
147+
148+
if options.Has(OPT_GENERATE_MAN) {
149+
os.Exit(genMan())
143150
}
144151

145152
configureUI()
@@ -594,6 +601,41 @@ func showUsage() {
594601
genUsage().Render()
595602
}
596603

604+
// showAbout prints info about version
605+
func showAbout() {
606+
genAbout().Render()
607+
}
608+
609+
// genMan generates man page
610+
func genMan() int {
611+
fmt.Println(
612+
man.Generate(
613+
genUsage(),
614+
genAbout(),
615+
),
616+
)
617+
618+
return 0
619+
}
620+
621+
// genCompletion generates completion for different shells
622+
func genCompletion() int {
623+
info := genUsage()
624+
625+
switch options.GetS(OPT_COMPLETION) {
626+
case "bash":
627+
fmt.Printf(bash.Generate(info, "sslcli"))
628+
case "fish":
629+
fmt.Printf(fish.Generate(info, "sslcli"))
630+
case "zsh":
631+
fmt.Printf(zsh.Generate(info, optMap, "sslcli"))
632+
default:
633+
return 1
634+
}
635+
636+
return 0
637+
}
638+
597639
// genUsage generates usage info
598640
func genUsage() *usage.Info {
599641
info := usage.NewInfo("", "host…")
@@ -620,35 +662,17 @@ func genUsage() *usage.Info {
620662
return info
621663
}
622664

623-
// genCompletion generates completion for different shells
624-
func genCompletion() {
625-
info := genUsage()
626-
627-
switch options.GetS(OPT_COMPLETION) {
628-
case "bash":
629-
fmt.Printf(bash.Generate(info, "sslcli"))
630-
case "fish":
631-
fmt.Printf(fish.Generate(info, "sslcli"))
632-
case "zsh":
633-
fmt.Printf(zsh.Generate(info, optMap, "sslcli"))
634-
default:
635-
os.Exit(1)
636-
}
637-
638-
os.Exit(0)
639-
}
640-
641-
// showAbout prints info about version
642-
func showAbout() {
665+
// genAbout generates info about version
666+
func genAbout() *usage.About {
643667
about := &usage.About{
644668
App: APP,
645669
Version: VER,
646670
Desc: DESC,
647671
Year: 2009,
648-
Owner: "Essential Kaos",
672+
Owner: "ESSENTIAL KAOS",
649673
License: "Apache License, Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0>",
650674
UpdateChecker: usage.UpdateChecker{"essentialkaos/sslcli", update.GitHubChecker},
651675
}
652676

653-
about.Render()
677+
return about
654678
}

common/sslcli.spec

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ rm -rf %{buildroot}
7878
install -dm 755 %{buildroot}%{_bindir}
7979
install -pm 755 %{name} %{buildroot}%{_bindir}/
8080

81+
./%{name} --generate-man > %{buildroot}%{_mandir}/man1/%{name}.1
82+
8183
%clean
8284
rm -rf %{buildroot}
8385

@@ -114,6 +116,7 @@ fi
114116
%files
115117
%defattr(-,root,root,-)
116118
%doc LICENSE
119+
%{_mandir}/man1/%{name}.1.*
117120
%{_bindir}/%{name}
118121

119122
################################################################################

0 commit comments

Comments
 (0)