111 lines
1.6 KiB
V
111 lines
1.6 KiB
V
module cli
|
|
|
|
fn test_manpage() {
|
|
mut cmd := Command{
|
|
name: 'command'
|
|
description: 'description'
|
|
commands: [
|
|
Command{
|
|
name: 'sub'
|
|
description: 'subcommand'
|
|
},
|
|
Command{
|
|
name: 'sub2'
|
|
description: 'another subcommand'
|
|
},
|
|
]
|
|
flags: [
|
|
Flag{
|
|
flag: .string
|
|
name: 'str'
|
|
description: 'str flag'
|
|
},
|
|
Flag{
|
|
flag: .bool
|
|
name: 'bool'
|
|
description: 'bool flag'
|
|
abbrev: 'b'
|
|
},
|
|
Flag{
|
|
flag: .string
|
|
name: 'required'
|
|
abbrev: 'r'
|
|
required: true
|
|
},
|
|
]
|
|
}
|
|
cmd.setup()
|
|
assert cmd.manpage().after_char(`\n`) == r'.Dt COMMAND 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm command
|
|
.Nd description
|
|
.Sh SYNOPSIS
|
|
.Nm command
|
|
.Op Fl str Ar string
|
|
.Op Fl b
|
|
.Op Fl r Ar string
|
|
.Nm command
|
|
.Ar subcommand
|
|
.Sh DESCRIPTION
|
|
description
|
|
.Pp
|
|
The options are as follows:
|
|
.Bl -tag -width indent
|
|
.It Fl str
|
|
str flag
|
|
.It Fl b Fl bool
|
|
bool flag
|
|
.It Fl r Fl required
|
|
.El
|
|
.Pp
|
|
The subcommands are as follows:
|
|
.Bl -tag -width indent
|
|
.It Cm sub
|
|
subcommand
|
|
.It Cm sub2
|
|
another subcommand
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr command-sub 1 ,
|
|
.Xr command-sub2 1
|
|
'
|
|
|
|
cmd.posix_mode = true
|
|
assert cmd.manpage().after_char(`\n`) == r'.Dt COMMAND 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm command
|
|
.Nd description
|
|
.Sh SYNOPSIS
|
|
.Nm command
|
|
.Op Fl -str Ar string
|
|
.Op Fl b
|
|
.Op Fl r Ar string
|
|
.Nm command
|
|
.Ar subcommand
|
|
.Sh DESCRIPTION
|
|
description
|
|
.Pp
|
|
The options are as follows:
|
|
.Bl -tag -width indent
|
|
.It Fl -str
|
|
str flag
|
|
.It Fl b Fl -bool
|
|
bool flag
|
|
.It Fl r Fl -required
|
|
.El
|
|
.Pp
|
|
The subcommands are as follows:
|
|
.Bl -tag -width indent
|
|
.It Cm sub
|
|
subcommand
|
|
.It Cm sub2
|
|
another subcommand
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr command-sub 1 ,
|
|
.Xr command-sub2 1
|
|
'
|
|
}
|