Explorar el Código

Support opening the archived page

Lucas Stadler %!s(int64=8) %!d(string=hace) años
padre
commit
a2285f436f
Se han modificado 1 ficheros con 33 adiciones y 1 borrados
  1. 33 1
      go/archive/archive.go

+ 33 - 1
go/archive/archive.go

@ -3,6 +3,7 @@ package main
3 3
import (
4 4
	"crypto/rand"
5 5
	"encoding/json"
6
	"flag"
6 7
	"fmt"
7 8
	"net/url"
8 9
	"os"
@ -11,12 +12,22 @@ import (
11 12
	"path/filepath"
12 13
)
13 14
15
var flags struct {
16
	open bool
17
}
18
14 19
type Archive struct {
15 20
	Mappings map[string]string `json:"mappings"`
16 21
}
17 22
23
func init() {
24
	flag.BoolVar(&flags.open, "open", false, "Open the archived page")
25
}
26
18 27
func main() {
19
	u, err := url.Parse(os.Args[1])
28
	flag.Parse()
29
30
	u, err := url.Parse(flag.Arg(0))
20 31
	if err != nil {
21 32
		exit("url.Parse", err)
22 33
	}
@ -37,6 +48,12 @@ func main() {
37 48
	p, ok := archive.Mappings[u.String()]
38 49
	if ok {
39 50
		fmt.Println("==> Archived at", p)
51
52
		if flags.open {
53
			fmt.Println("==> Opening archive of", u)
54
			open(u, p)
55
		}
56
40 57
		return
41 58
	}
42 59
@ -112,6 +129,21 @@ func main() {
112 129
	f.Close()
113 130
114 131
	fmt.Println("==> Archived at", p)
132
133
	if flags.open {
134
		fmt.Println("==> Opening archive of", u)
135
		open(u, p)
136
	}
137
}
138
139
func open(u *url.URL, path string) {
140
	cmd := exec.Command("xdg-open", path)
141
	cmd.Stderr = os.Stderr
142
	cmd.Stdout = os.Stdout
143
	err := cmd.Start()
144
	if err != nil {
145
		exit("cmd.Start", err)
146
	}
115 147
}
116 148
117 149
func exit(msg string, err error) {