diff --git a/help/help.go b/help/help.go new file mode 100644 index 0000000..daf5d66 --- /dev/null +++ b/help/help.go @@ -0,0 +1,17 @@ +package help + +import ( + "fmt" +) + +// exported function(s) +func Print() { + fmt.Println("usage:") + fmt.Println("\tgosync [source] [target] (options)") + fmt.Println("") + fmt.Println("options:") + fmt.Println("\t-u | --user:\t\tset user for ssh / rsync") + fmt.Println("\t-p | --password:\tset password for ssh / rsync") + fmt.Println("\t-c | --concurrency:\tset limit for concurrent rsync processes") + fmt.Println("\t-v | --verbose:\t\tenable verbose / debug output") +} diff --git a/settings/arguments.go b/settings/arguments.go index 3dff27e..f0de907 100644 --- a/settings/arguments.go +++ b/settings/arguments.go @@ -5,18 +5,21 @@ import ( "runtime" "strconv" "strings" + "velvettear/gosync/help" "velvettear/gosync/log" ) // exported function(s) func Initialize() { os.Args = os.Args[1:] - if len(os.Args) < 2 { - log.Fatal("error: missing arguments") - } var arguments []string for index, arg := range os.Args { switch strings.ToLower(arg) { + case "-h": + fallthrough + case "--help": + help.Print() + os.Exit(0) case "-v": fallthrough case "--verbose": @@ -56,6 +59,9 @@ func Initialize() { arguments = append(arguments, arg) } } + if len(os.Args) < 2 { + log.Fatal("error: missing arguments") + } setSource(arguments[0]) setTarget(arguments[1]) if Concurrency == 0 {