forked from vieter-v/vieter
feat(console): added command to generate man pages
This commit is contained in:
parent
06df2c21f0
commit
329e819e15
8 changed files with 51 additions and 0 deletions
|
|
@ -2,6 +2,8 @@ module console
|
|||
|
||||
import arrays
|
||||
import strings
|
||||
import cli
|
||||
import os
|
||||
|
||||
// pretty_table converts a list of string data into a pretty table. Many thanks
|
||||
// to @hungrybluedev in the Vlang Discord for providing this code!
|
||||
|
|
@ -54,3 +56,15 @@ pub fn pretty_table(header []string, data [][]string) ?string {
|
|||
|
||||
return buffer.str()
|
||||
}
|
||||
|
||||
// export_man_pages recursively generates all man pages for the given
|
||||
// cli.Command & writes them to the given directory.
|
||||
pub fn export_man_pages(cmd cli.Command, path string) ? {
|
||||
man := cmd.manpage()
|
||||
os.write_file(os.join_path_single(path, cmd.full_name().replace(' ', '-') + '.1'),
|
||||
man)?
|
||||
|
||||
for sub_cmd in cmd.commands {
|
||||
export_man_pages(sub_cmd, path)?
|
||||
}
|
||||
}
|
||||
|
|
|
|||
21
src/console/man/man.v
Normal file
21
src/console/man/man.v
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
module man
|
||||
|
||||
import cli
|
||||
import console
|
||||
import os
|
||||
|
||||
// cmd returns the cli submodule that handles generating man pages.
|
||||
pub fn cmd() cli.Command {
|
||||
return cli.Command{
|
||||
name: 'man'
|
||||
description: 'Generate all man pages & save them in the given directory.'
|
||||
usage: 'dir'
|
||||
required_args: 1
|
||||
execute: fn (cmd cli.Command) ? {
|
||||
root := cmd.root()
|
||||
os.mkdir_all(cmd.args[0])?
|
||||
|
||||
console.export_man_pages(root, cmd.args[0])?
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ import cli
|
|||
import console.git
|
||||
import console.logs
|
||||
import console.schedule
|
||||
import console.man
|
||||
import cron
|
||||
|
||||
fn main() {
|
||||
|
|
@ -29,6 +30,7 @@ fn main() {
|
|||
cron.cmd(),
|
||||
logs.cmd(),
|
||||
schedule.cmd(),
|
||||
man.cmd(),
|
||||
]
|
||||
}
|
||||
app.setup()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue