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"
"os"
"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() {
defer func() {
if r := recover(); r != nil {
@ -24,8 +14,13 @@ func main() {
}
}()
args := getArgs()
fs := args["<filenames>"].([]string)
args, err := getArgs()
if err != nil {
panic(err)
}
fs := args.filenames
rc := make(chan fileResult, len(fs))
c := newFileChecker(5 * time.Second)
@ -45,12 +40,11 @@ func main() {
for i := 0; i < len(fs); i++ {
r := <-rc
verbose := args["--verbose"].(bool)
if !r.Ok() {
ok = false
printToStderr(r.String(verbose))
} else if r.Ok() && verbose {
printToStderr(r.String(args.verbose))
} else if r.Ok() && args.verbose {
printToStderr(r.String(true))
}
}
@ -64,13 +58,3 @@ func isURL(s string) bool {
u, err := url.Parse(s)
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