-
Notifications
You must be signed in to change notification settings - Fork 243
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat : add support for generating manpages for crc cli commands (#4181) #4586
base: main
Are you sure you want to change the base?
Conversation
Skipping CI for Draft Pull Request. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
41b5fc9
to
04bcf3c
Compare
pkg/crc/adminhelper/manpages.go
Outdated
@@ -0,0 +1,162 @@ | |||
package adminhelper |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why the manpages are part of adminhelper
package? adminhelper
have different usecase so may be create a separate manpages
package and keep those in that package?
04bcf3c
to
0309822
Compare
pkg/crc/manpages/manpages.go
Outdated
@@ -0,0 +1,173 @@ | |||
package manpages |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since man pages is only useful for linux and mac so better to have the build target and because it is used for root.go
so may be for windows just have a function which return nil?
|
||
func crcManPageGenerator(targetDir string) error { | ||
return doc.GenManTree(rootCmd, manpages.CrcManPageHeader, targetDir) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how much extra time does it take when we generate it first time?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm trying to measure execution time using the time
command however I'm not seeing any significant difference in execution times. Execution time comes out different on every execution:
In both cases I ran crc cleanup
before to make sure no man pages were generated.
Time for crc setup
on v2.46.0:
real 0m4.171s
user 0m0.127s
sys 0m0.140s
Time for crc setup
based on this PR:
real 0m3.906s
user 0m0.097s
sys 0m0.108s
0309822
to
472036a
Compare
+ crc should generate manpages for all sub commands and place them in `~/.local/share/man/man1` directory + These man pages would only be generated once, crc would skip generation if it detects man pages already present in target directory + These generated man pages would be cleaned up during `crc cleanup` Signed-off-by: Rohan Kumar <rohaan@redhat.com>
472036a
to
7e11f12
Compare
@rohanKanojia: The following tests failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Description
Fixes: #4181
Add support for generating man pages for CRC CLI commands
Type of change
test, version modification, documentation, etc.)
Proposed changes
~/.local/share/man/man1
directoryMANPATH
environment variable so that abovementioned directory gets picked up by man command for man pages lookupcrc cleanup
Testing
crc setup
on Linux or MacOS~/.local/share/man/man1
directory to see generate manpagesmanpath
to see abovementioned folder included in man pagesman crc
/man crc-console
Contribution Checklist