Adds help to the cli

This commit is contained in:
sloum 2020-05-14 21:43:23 -07:00
parent af2324d3c4
commit ec58b9a860
2 changed files with 39 additions and 3 deletions

39
main.go
View File

@ -64,8 +64,7 @@ func expandTilde(path string) string {
} }
func displayUsage() { func displayUsage() {
fmt.Println("spacewalk [stuff] [things]") fmt.Println("spacewalk \033[3mcommand\033[23m [\033[3moptions...\033[23m]\n\nAvailable commands:\n\tcreate\n\tupdate\n\tremove\n\tdelete\n\tadd\n\tshow\n\tlaunch\n\thelp")
os.Exit(0)
} }
// parseArgs is the main entry point into scbm and will run the appropriate functions // parseArgs is the main entry point into scbm and will run the appropriate functions
@ -74,6 +73,7 @@ func parseArgs() {
a := os.Args a := os.Args
if len(a) == 1 { if len(a) == 1 {
displayUsage() displayUsage()
os.Exit(0)
} }
switch a[1] { switch a[1] {
@ -123,8 +123,17 @@ func parseArgs() {
} else { } else {
earlyExit("Incorrect syntax.\n- spacewalk show [\033[3mflight\033[0m]") earlyExit("Incorrect syntax.\n- spacewalk show [\033[3mflight\033[0m]")
} }
case "help":
if len(a) == 2 {
displayHelp("")
} else if len(a) == 3 {
displayHelp(a[2])
} else {
earlyExit("Incorrect syntax.\n- spacewalk help [\033[3mcommand\033[0m]")
}
default: default:
earlyExit(fmt.Sprintf("Unknown command %q", a[1])) displayUsage()
earlyExit(fmt.Sprintf("Unknown command %q.\nTry: `spacewalk help`", a[1]))
} }
} }
@ -342,6 +351,30 @@ func create(flight string) {
ff.Close() ff.Close()
} }
func displayHelp(command string) {
switch command {
case "launch":
fmt.Println("Format: spacewalk launch [\033[3mflight\033[23m\n\nWhen run without a flight, spacewalk will launch all flights. When passed a flight it will just launch the given flight. A launch is defined as checking all of the remote pages for updates and generating a new version of the output file.")
case "create":
fmt.Println("Format: spacewalk create \033[3mflight\033[23m\n\nCreates a new flight with the given name. A flight can have capsules added to it, a header and footer assigned, and have it all launched to an output file.")
case "add":
fmt.Println("Format: spacewalk add \033[3mflight url title\033[23m\n\nAdds the given capsule url to the given flight. When the flight is launched, the given capsule will be named with the given title.")
case "remove":
fmt.Println("Format: spacewalk remove \033[3mflight\033[23m\n\nRemoves the given flight from the system. This is permanent and cannot be undone. Use with caution.")
case "delete":
fmt.Println("Format: spacewalk delete \033[3mflight title\033[23m\n\nRemoves the capsule with the given title from the given flight (remove just one capsule from a flight).")
case "show":
fmt.Println("Format: spacewalk show [\033[3mflight\033[23m]\n\nWhen run without a flight, will show basic information for all flights. If a flight is passed then detailed information, including a capsule list, will be shown.")
case "update":
fmt.Println("Format: spacewalk update \033[3mflight item value\033[23m\n\nWill update a flights manifest. Valid items:\n\tlaunch\n\theader\n\tfooter\n\nAll items take a filepath as their value.")
case "help":
fmt.Println("Format: spacewalk help \033[3mcommand\033[0m\n\nWill provide a brief detailed message about the given command. For more detailed information see the man page.")
default:
fmt.Println("Unknown command. Please run: spacewalk help \033[3mcommand\033[23m\nWhere \033[3mcommand\033[23m is any of the following:\n\tcreate\n\tlaunch\n\tadd\n\tremove\n\tdelete\n\tshow\n\tupdate\n\thelp")
}
}
func update(flight, item, value string) { func update(flight, item, value string) {
manifest := readManifest() manifest := readManifest()
row := -1 row := -1

View File

@ -62,6 +62,9 @@ When run without a flight name \f[B]show\f[] will show the manifest
for each flight. When run with a flight name \f[B]show\f[] will show for each flight. When run with a flight name \f[B]show\f[] will show
the manifest for the given flight as well as the log (list of sites) the manifest for the given flight as well as the log (list of sites)
for that flight. for that flight.
.SS help [\f[I]command\f[]]
.PP
Will display basic help information for the given command.
.SS launch [\f[I]flightname\f[]] .SS launch [\f[I]flightname\f[]]
.PP .PP
When run without a flight name \f[B]launch\f[] will launch all available When run without a flight name \f[B]launch\f[] will launch all available