Browse Source

Create arguments object

renovate/configure
Yota Toyama 8 years ago
parent
commit
40d5063af2
  1. 26
      arguments.go
  2. 34
      main.go

26
arguments.go

@ -0,0 +1,26 @@
package main
import "github.com/docopt/docopt-go"
const usage = `Link checker for Markdown and HTML
Usage:
linkcheck [-v] <filenames>...
Options:
-v, --verbose Be verbose`
type arguments struct {
filenames []string
verbose bool
}
func getArgs() (arguments, error) {
args, err := docopt.Parse(usage, nil, true, "linkcheck", true)
if err != nil {
return arguments{}, err
}
return arguments{args["<filenames>"].([]string), args["--verbose"].(bool)}, nil
}

34
main.go

@ -4,18 +4,8 @@ import (
"net/url" "net/url"
"os" "os"
"time" "time"
"github.com/docopt/docopt-go"
) )
const usage = `Link checker for Markdown and HTML
Usage:
linkcheck [-v] <filenames>...
Options:
-v, --verbose Be verbose`
func main() { func main() {
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
@ -24,8 +14,13 @@ func main() {
} }
}() }()
args := getArgs() args, err := getArgs()
fs := args["<filenames>"].([]string)
if err != nil {
panic(err)
}
fs := args.filenames
rc := make(chan fileResult, len(fs)) rc := make(chan fileResult, len(fs))
c := newFileChecker(5 * time.Second) c := newFileChecker(5 * time.Second)
@ -45,12 +40,11 @@ func main() {
for i := 0; i < len(fs); i++ { for i := 0; i < len(fs); i++ {
r := <-rc r := <-rc
verbose := args["--verbose"].(bool)
if !r.Ok() { if !r.Ok() {
ok = false ok = false
printToStderr(r.String(verbose)) printToStderr(r.String(args.verbose))
} else if r.Ok() && verbose { } else if r.Ok() && args.verbose {
printToStderr(r.String(true)) printToStderr(r.String(true))
} }
} }
@ -64,13 +58,3 @@ func isURL(s string) bool {
u, err := url.Parse(s) u, err := url.Parse(s)
return err == nil && (u.Scheme == "http" || u.Scheme == "https") return err == nil && (u.Scheme == "http" || u.Scheme == "https")
} }
func getArgs() map[string]interface{} {
args, err := docopt.Parse(usage, nil, true, "linkcheck", true)
if err != nil {
panic(err)
}
return args
}

Loading…
Cancel
Save