diff options
author | 2025-03-09 17:47:56 +0100 | |
---|---|---|
committer | 2025-03-10 01:59:49 +0100 | |
commit | 3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch) | |
tree | f61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/jessevdk/go-flags/man.go | |
parent | [chore] update URLs to forked source (diff) | |
download | gotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz |
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/jessevdk/go-flags/man.go')
-rw-r--r-- | vendor/github.com/jessevdk/go-flags/man.go | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/vendor/github.com/jessevdk/go-flags/man.go b/vendor/github.com/jessevdk/go-flags/man.go deleted file mode 100644 index 82572f9a7..000000000 --- a/vendor/github.com/jessevdk/go-flags/man.go +++ /dev/null @@ -1,223 +0,0 @@ -package flags - -import ( - "fmt" - "io" - "os" - "runtime" - "strconv" - "strings" - "time" -) - -func manQuoteLines(s string) string { - lines := strings.Split(s, "\n") - parts := []string{} - - for _, line := range lines { - parts = append(parts, manQuote(line)) - } - - return strings.Join(parts, "\n") -} - -func manQuote(s string) string { - return strings.Replace(s, "\\", "\\\\", -1) -} - -func formatForMan(wr io.Writer, s string, quoter func(s string) string) { - for { - idx := strings.IndexRune(s, '`') - - if idx < 0 { - fmt.Fprintf(wr, "%s", quoter(s)) - break - } - - fmt.Fprintf(wr, "%s", quoter(s[:idx])) - - s = s[idx+1:] - idx = strings.IndexRune(s, '\'') - - if idx < 0 { - fmt.Fprintf(wr, "%s", quoter(s)) - break - } - - fmt.Fprintf(wr, "\\fB%s\\fP", quoter(s[:idx])) - s = s[idx+1:] - } -} - -func writeManPageOptions(wr io.Writer, grp *Group) { - grp.eachGroup(func(group *Group) { - if !group.showInHelp() { - return - } - - // If the parent (grp) has any subgroups, display their descriptions as - // subsection headers similar to the output of --help. - if group.ShortDescription != "" && len(grp.groups) > 0 { - fmt.Fprintf(wr, ".SS %s\n", group.ShortDescription) - - if group.LongDescription != "" { - formatForMan(wr, group.LongDescription, manQuoteLines) - fmt.Fprintln(wr, "") - } - } - - for _, opt := range group.options { - if !opt.showInHelp() { - continue - } - - fmt.Fprintln(wr, ".TP") - fmt.Fprintf(wr, "\\fB") - - if opt.ShortName != 0 { - fmt.Fprintf(wr, "\\fB\\-%c\\fR", opt.ShortName) - } - - if len(opt.LongName) != 0 { - if opt.ShortName != 0 { - fmt.Fprintf(wr, ", ") - } - - fmt.Fprintf(wr, "\\fB\\-\\-%s\\fR", manQuote(opt.LongNameWithNamespace())) - } - - if len(opt.ValueName) != 0 || opt.OptionalArgument { - if opt.OptionalArgument { - fmt.Fprintf(wr, " [\\fI%s=%s\\fR]", manQuote(opt.ValueName), manQuote(strings.Join(quoteV(opt.OptionalValue), ", "))) - } else { - fmt.Fprintf(wr, " \\fI%s\\fR", manQuote(opt.ValueName)) - } - } - - if len(opt.Default) != 0 { - fmt.Fprintf(wr, " <default: \\fI%s\\fR>", manQuote(strings.Join(quoteV(opt.Default), ", "))) - } else if len(opt.EnvKeyWithNamespace()) != 0 { - if runtime.GOOS == "windows" { - fmt.Fprintf(wr, " <default: \\fI%%%s%%\\fR>", manQuote(opt.EnvKeyWithNamespace())) - } else { - fmt.Fprintf(wr, " <default: \\fI$%s\\fR>", manQuote(opt.EnvKeyWithNamespace())) - } - } - - if opt.Required { - fmt.Fprintf(wr, " (\\fIrequired\\fR)") - } - - fmt.Fprintln(wr, "\\fP") - - if len(opt.Description) != 0 { - formatForMan(wr, opt.Description, manQuoteLines) - fmt.Fprintln(wr, "") - } - } - }) -} - -func writeManPageSubcommands(wr io.Writer, name string, usagePrefix string, root *Command) { - commands := root.sortedVisibleCommands() - - for _, c := range commands { - var nn string - - if c.Hidden { - continue - } - - if len(name) != 0 { - nn = name + " " + c.Name - } else { - nn = c.Name - } - - writeManPageCommand(wr, nn, usagePrefix, c) - } -} - -func writeManPageCommand(wr io.Writer, name string, usagePrefix string, command *Command) { - fmt.Fprintf(wr, ".SS %s\n", name) - fmt.Fprintln(wr, command.ShortDescription) - - if len(command.LongDescription) > 0 { - fmt.Fprintln(wr, "") - - cmdstart := fmt.Sprintf("The %s command", manQuote(command.Name)) - - if strings.HasPrefix(command.LongDescription, cmdstart) { - fmt.Fprintf(wr, "The \\fI%s\\fP command", manQuote(command.Name)) - - formatForMan(wr, command.LongDescription[len(cmdstart):], manQuoteLines) - fmt.Fprintln(wr, "") - } else { - formatForMan(wr, command.LongDescription, manQuoteLines) - fmt.Fprintln(wr, "") - } - } - - var pre = usagePrefix + " " + command.Name - - var usage string - if us, ok := command.data.(Usage); ok { - usage = us.Usage() - } else if command.hasHelpOptions() { - usage = fmt.Sprintf("[%s-OPTIONS]", command.Name) - } - - var nextPrefix = pre - if len(usage) > 0 { - fmt.Fprintf(wr, "\n\\fBUsage\\fP: %s %s\n.TP\n", manQuote(pre), manQuote(usage)) - nextPrefix = pre + " " + usage - } - - if len(command.Aliases) > 0 { - fmt.Fprintf(wr, "\n\\fBAliases\\fP: %s\n\n", manQuote(strings.Join(command.Aliases, ", "))) - } - - writeManPageOptions(wr, command.Group) - writeManPageSubcommands(wr, name, nextPrefix, command) -} - -// WriteManPage writes a basic man page in groff format to the specified -// writer. -func (p *Parser) WriteManPage(wr io.Writer) { - t := time.Now() - source_date_epoch := os.Getenv("SOURCE_DATE_EPOCH") - if source_date_epoch != "" { - sde, err := strconv.ParseInt(source_date_epoch, 10, 64) - if err != nil { - panic(fmt.Sprintf("Invalid SOURCE_DATE_EPOCH: %s", err)) - } - t = time.Unix(sde, 0) - } - - fmt.Fprintf(wr, ".TH %s 1 \"%s\"\n", manQuote(p.Name), t.Format("2 January 2006")) - fmt.Fprintln(wr, ".SH NAME") - fmt.Fprintf(wr, "%s \\- %s\n", manQuote(p.Name), manQuoteLines(p.ShortDescription)) - fmt.Fprintln(wr, ".SH SYNOPSIS") - - usage := p.Usage - - if len(usage) == 0 { - usage = "[OPTIONS]" - } - - fmt.Fprintf(wr, "\\fB%s\\fP %s\n", manQuote(p.Name), manQuote(usage)) - fmt.Fprintln(wr, ".SH DESCRIPTION") - - formatForMan(wr, p.LongDescription, manQuoteLines) - fmt.Fprintln(wr, "") - - fmt.Fprintln(wr, ".SH OPTIONS") - - writeManPageOptions(wr, p.Command.Group) - - if len(p.visibleCommands()) > 0 { - fmt.Fprintln(wr, ".SH COMMANDS") - - writeManPageSubcommands(wr, "", p.Name+" "+usage, p.Command) - } -} |