Skip to content

Commit a886de3

Browse files
committed
Good bye urfave/cli
1 parent a6e2cce commit a886de3

File tree

3 files changed

+38
-53
lines changed

3 files changed

+38
-53
lines changed

go.mod

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module github.com/otiai10/opengraph/v2
33
require (
44
github.com/otiai10/marmoset v0.4.0
55
github.com/otiai10/mint v1.3.2
6-
github.com/urfave/cli v1.22.1
76
golang.org/x/net v0.0.0-20200923182212-328152dc79b1
87
)
8+
9+
go 1.13

go.sum

-13
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
2-
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
3-
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
41
github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95 h1:+OLn68pqasWca0z5ryit9KGfp3sUsW4Lqg32iRMJyzs=
52
github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=
63
github.com/otiai10/curr v1.0.0 h1:TJIWdbX0B+kpNagQrjgq8bCMrbhiuX73M2XwgtDMoOI=
@@ -11,14 +8,6 @@ github.com/otiai10/mint v1.3.0 h1:Ady6MKVezQwHBkGzLFbrsywyp09Ah7rkmfjV3Bcr5uc=
118
github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo=
129
github.com/otiai10/mint v1.3.2 h1:VYWnrP5fXmz1MXvjuUvcBrXSjGE6xjON+axB/UrpO3E=
1310
github.com/otiai10/mint v1.3.2/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc=
14-
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
15-
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
16-
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
17-
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
18-
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
19-
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
20-
github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=
21-
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
2211
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
2312
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
2413
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@@ -28,5 +17,3 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h
2817
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
2918
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3019
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
31-
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
32-
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

ogp/main.go

+36-39
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,52 @@ package main
22

33
import (
44
"encoding/json"
5+
"flag"
56
"fmt"
67
"net/url"
78
"os"
89

910
"github.com/otiai10/opengraph/v2"
10-
"github.com/urfave/cli"
1111
)
1212

1313
func main() {
14-
app := cli.NewApp()
15-
app.Version = "2.0.0"
16-
app.Usage = "Fetch URL and extract OpenGraph meta informations."
17-
app.UsageText = "ogp [-A] {URL}"
18-
app.Flags = []cli.Flag{
19-
cli.BoolFlag{
20-
Name: "absolute,A",
21-
Usage: "populate relative URLs to absolute URLs",
22-
},
23-
}
24-
app.Action = func(ctx *cli.Context) error {
25-
rawurl := ctx.Args().First()
26-
if rawurl == "" {
27-
return fmt.Errorf("URL must be specified")
28-
}
29-
u, err := url.Parse(rawurl)
30-
if err != nil {
31-
return err
32-
}
33-
if u.Scheme == "" {
34-
u.Scheme = "https"
35-
}
36-
og := opengraph.New(u.String())
37-
if err := og.Fetch(); err != nil {
38-
return err
39-
}
40-
if ctx.Bool("absolute") {
41-
if err := og.ToAbs(); err != nil {
42-
return err
43-
}
44-
}
45-
b, err := json.MarshalIndent(og, "", "\t")
46-
if err != nil {
47-
return err
48-
}
49-
fmt.Printf("%+v\n", string(b))
50-
return nil
14+
flagset := flag.CommandLine
15+
flagset.Usage = func() {
16+
fmt.Println("Fetch URL and extract OpenGraph meta informations.")
5117
}
52-
if err := app.Run(os.Args); err != nil {
18+
abs := flagset.Bool("A", false, "populate relative URLs to absolute URLs")
19+
flagset.Parse(os.Args[1:])
20+
if err := run(flagset.Args(), *abs); err != nil {
5321
fmt.Println("Error:", err.Error())
5422
os.Exit(1)
5523
}
5624
}
25+
26+
func run(args []string, absolute bool) error {
27+
if len(args) == 0 {
28+
return fmt.Errorf("URL must be specified")
29+
}
30+
rawurl := args[0]
31+
u, err := url.Parse(rawurl)
32+
if err != nil {
33+
return err
34+
}
35+
if u.Scheme == "" {
36+
u.Scheme = "https"
37+
}
38+
og := opengraph.New(u.String())
39+
if err := og.Fetch(); err != nil {
40+
return err
41+
}
42+
if absolute {
43+
if err := og.ToAbs(); err != nil {
44+
return err
45+
}
46+
}
47+
b, err := json.MarshalIndent(og, "", "\t")
48+
if err != nil {
49+
return err
50+
}
51+
fmt.Printf("%+v\n", string(b))
52+
return nil
53+
}

0 commit comments

Comments
 (0)