mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-31 02:09:27 +08:00 
			
		
		
		
	cmd: Migrate to spf13/cobra, remove single-dash arg support (#4565)
				
					
				
			* cmd: migrate to spf13/cobra * add `manpage` command * limit Caddy tagline to root `help` only * hard-code the manpage section to 8
This commit is contained in:
		 Mohammed Al Sahaf
					Mohammed Al Sahaf
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							8cb3cf540c
						
					
				
				
					commit
					258bc82b69
				
			| @ -29,7 +29,6 @@ import ( | ||||
| 	"os/exec" | ||||
| 	"runtime" | ||||
| 	"runtime/debug" | ||||
| 	"sort" | ||||
| 	"strings" | ||||
|  | ||||
| 	"github.com/aryann/difflib" | ||||
| @ -580,70 +579,6 @@ func cmdFmt(fl Flags) (int, error) { | ||||
| 	return caddy.ExitCodeSuccess, nil | ||||
| } | ||||
|  | ||||
| func cmdHelp(fl Flags) (int, error) { | ||||
| 	const fullDocs = `Full documentation is available at: | ||||
| https://caddyserver.com/docs/command-line` | ||||
|  | ||||
| 	args := fl.Args() | ||||
| 	if len(args) == 0 { | ||||
| 		s := `Caddy is an extensible server platform. | ||||
|  | ||||
| usage: | ||||
|   caddy <command> [<args...>] | ||||
|  | ||||
| commands: | ||||
| ` | ||||
| 		keys := make([]string, 0, len(commands)) | ||||
| 		for k := range commands { | ||||
| 			keys = append(keys, k) | ||||
| 		} | ||||
| 		sort.Strings(keys) | ||||
| 		for _, k := range keys { | ||||
| 			cmd := commands[k] | ||||
| 			short := strings.TrimSuffix(cmd.Short, ".") | ||||
| 			s += fmt.Sprintf("  %-15s %s\n", cmd.Name, short) | ||||
| 		} | ||||
|  | ||||
| 		s += "\nUse 'caddy help <command>' for more information about a command.\n" | ||||
| 		s += "\n" + fullDocs + "\n" | ||||
|  | ||||
| 		fmt.Print(s) | ||||
|  | ||||
| 		return caddy.ExitCodeSuccess, nil | ||||
| 	} else if len(args) > 1 { | ||||
| 		return caddy.ExitCodeFailedStartup, fmt.Errorf("can only give help with one command") | ||||
| 	} | ||||
|  | ||||
| 	subcommand, ok := commands[args[0]] | ||||
| 	if !ok { | ||||
| 		return caddy.ExitCodeFailedStartup, fmt.Errorf("unknown command: %s", args[0]) | ||||
| 	} | ||||
|  | ||||
| 	helpText := strings.TrimSpace(subcommand.Long) | ||||
| 	if helpText == "" { | ||||
| 		helpText = subcommand.Short | ||||
| 		if !strings.HasSuffix(helpText, ".") { | ||||
| 			helpText += "." | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	result := fmt.Sprintf("%s\n\nusage:\n  caddy %s %s\n", | ||||
| 		helpText, | ||||
| 		subcommand.Name, | ||||
| 		strings.TrimSpace(subcommand.Usage), | ||||
| 	) | ||||
|  | ||||
| 	if help := flagHelp(subcommand.Flags); help != "" { | ||||
| 		result += fmt.Sprintf("\nflags: (NOTE: prefix flags with `--` instead of `-`)\n%s", help) | ||||
| 	} | ||||
|  | ||||
| 	result += "\n" + fullDocs + "\n" | ||||
|  | ||||
| 	fmt.Print(result) | ||||
|  | ||||
| 	return caddy.ExitCodeSuccess, nil | ||||
| } | ||||
|  | ||||
| // AdminAPIRequest makes an API request according to the CLI flags given, | ||||
| // with the given HTTP method and request URI. If body is non-nil, it will | ||||
| // be assumed to be Content-Type application/json. The caller should close | ||||
|  | ||||
		Reference in New Issue
	
	Block a user