Add flag allow-unknown-authority to get command. Print usage when no file url has been specified
parent
dd6ad0099d
commit
bb7b4c59ad
21
main.go
21
main.go
|
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
|
"crypto/x509"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
@ -94,11 +95,18 @@ func transferLoop(transfer *XdccTransfer) {
|
||||||
// TODO: do clean-up operations here
|
// TODO: do clean-up operations here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func suggestUnknownAuthoritySwitch(err error) {
|
||||||
|
if err.Error() == (x509.UnknownAuthorityError{}.Error()) {
|
||||||
|
fmt.Println("use the --allow-unknown-authority flag to skip certificate verification")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func doTransfer(transfer *XdccTransfer) {
|
func doTransfer(transfer *XdccTransfer) {
|
||||||
err := transfer.Start()
|
err := transfer.Start()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
|
suggestUnknownAuthoritySwitch(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -145,11 +153,19 @@ func loadUrlListFile(filePath string) []string {
|
||||||
return urlList
|
return urlList
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func printGetUsageAndExit(flagSet *flag.FlagSet) {
|
||||||
|
fmt.Printf("usage: get url1 url2 ... [-o path] [-i file] [--allow-unknown-authority]\n\nFlag set:\n")
|
||||||
|
flagSet.PrintDefaults()
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
func getCommand(args []string) {
|
func getCommand(args []string) {
|
||||||
getCmd := flag.NewFlagSet("get", flag.ExitOnError)
|
getCmd := flag.NewFlagSet("get", flag.ExitOnError)
|
||||||
path := getCmd.String("o", ".", "output folder of dowloaded file")
|
path := getCmd.String("o", ".", "output folder of dowloaded file")
|
||||||
inputFile := getCmd.String("i", "", "input file containing a list of urls")
|
inputFile := getCmd.String("i", "", "input file containing a list of urls")
|
||||||
|
|
||||||
|
skipCertificateCheck := getCmd.Bool("allow-unknown-authority", false, "skip x509 certificate check during tls connection")
|
||||||
|
|
||||||
urlList := parseFlags(getCmd, args)
|
urlList := parseFlags(getCmd, args)
|
||||||
|
|
||||||
if *inputFile != "" {
|
if *inputFile != "" {
|
||||||
|
|
@ -157,8 +173,7 @@ func getCommand(args []string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(urlList) == 0 {
|
if len(urlList) == 0 {
|
||||||
fmt.Println("no file url provided")
|
printGetUsageAndExit(getCmd)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
|
|
@ -172,7 +187,7 @@ func getCommand(args []string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
transfer := NewXdccTransfer(*url, *path)
|
transfer := NewXdccTransfer(*url, *path, *skipCertificateCheck)
|
||||||
go func(transfer *XdccTransfer) {
|
go func(transfer *XdccTransfer) {
|
||||||
doTransfer(transfer)
|
doTransfer(transfer)
|
||||||
wg.Done()
|
wg.Done()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue