@@ -2,7 +2,7 @@ package cli
22
33// ////////////////////////////////////////////////////////////////////////////////// //
44// //
5- // Copyright (c) 2020 ESSENTIAL KAOS //
5+ // Copyright (c) 2021 ESSENTIAL KAOS //
66// Apache License, Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0> //
77// //
88// ////////////////////////////////////////////////////////////////////////////////// //
@@ -26,16 +26,17 @@ 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
31- "pkg.re/essentialkaos/sslscan.v12 "
32+ "pkg.re/essentialkaos/sslscan.v13 "
3233)
3334
3435// ////////////////////////////////////////////////////////////////////////////////// //
3536
3637const (
3738 APP = "SSLScan Client"
38- VER = "2.6 .0"
39+ VER = "2.7 .0"
3940 DESC = "Command-line client for the SSL Labs API"
4041)
4142
@@ -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
5961const (
@@ -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
107110var 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
598640func 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}
0 commit comments