Blame


1 14b3f96d 2019-10-26 op package main
2 14b3f96d 2019-10-26 op
3 14b3f96d 2019-10-26 op import (
4 14b3f96d 2019-10-26 op "flag"
5 14b3f96d 2019-10-26 op "fmt"
6 6c2d529b 2019-10-26 op "log"
7 14b3f96d 2019-10-26 op "os"
8 14b3f96d 2019-10-26 op "strconv"
9 14b3f96d 2019-10-26 op
10 14b3f96d 2019-10-26 op "9fans.net/go/acme"
11 14b3f96d 2019-10-26 op )
12 14b3f96d 2019-10-26 op
13 14b3f96d 2019-10-26 op var (
14 14b3f96d 2019-10-26 op cl = flag.Bool("c", false, `Clear the tag`)
15 6c2d529b 2019-10-26 op gt = flag.Bool("g", false, `Get the content of the tag`)
16 14b3f96d 2019-10-26 op )
17 14b3f96d 2019-10-26 op
18 14b3f96d 2019-10-26 op func open() (*acme.Win, error) {
19 14b3f96d 2019-10-26 op winid := os.Getenv("winid")
20 14b3f96d 2019-10-26 op id, err := strconv.Atoi(winid)
21 14b3f96d 2019-10-26 op if err != nil {
22 14b3f96d 2019-10-26 op return nil, err
23 14b3f96d 2019-10-26 op }
24 14b3f96d 2019-10-26 op win, err := acme.Open(id, nil)
25 14b3f96d 2019-10-26 op return win, err
26 14b3f96d 2019-10-26 op }
27 14b3f96d 2019-10-26 op
28 14b3f96d 2019-10-26 op func usage() {
29 14b3f96d 2019-10-26 op me := os.Args[0]
30 14b3f96d 2019-10-26 op fmt.Println(me, "- manage acme(1) tag")
31 14b3f96d 2019-10-26 op fmt.Println("Usage:", me, " [-ch] entries...")
32 14b3f96d 2019-10-26 op fmt.Println(" where entries are words to be added to acme' tag bar")
33 14b3f96d 2019-10-26 op flag.PrintDefaults()
34 14b3f96d 2019-10-26 op os.Exit(1)
35 14b3f96d 2019-10-26 op }
36 14b3f96d 2019-10-26 op
37 14b3f96d 2019-10-26 op func main() {
38 14b3f96d 2019-10-26 op flag.Usage = usage
39 14b3f96d 2019-10-26 op flag.Parse()
40 14b3f96d 2019-10-26 op
41 14b3f96d 2019-10-26 op win, err := open()
42 14b3f96d 2019-10-26 op if err != nil {
43 14b3f96d 2019-10-26 op os.Exit(1)
44 14b3f96d 2019-10-26 op }
45 14b3f96d 2019-10-26 op defer win.CloseFiles()
46 14b3f96d 2019-10-26 op
47 6c2d529b 2019-10-26 op if *gt {
48 6c2d529b 2019-10-26 op tag, err := win.ReadAll("tag")
49 6c2d529b 2019-10-26 op if err != nil {
50 6c2d529b 2019-10-26 op log.Fatalln(err)
51 6c2d529b 2019-10-26 op }
52 6c2d529b 2019-10-26 op fmt.Println(string(tag))
53 6c2d529b 2019-10-26 op }
54 6c2d529b 2019-10-26 op
55 14b3f96d 2019-10-26 op if *cl {
56 14b3f96d 2019-10-26 op win.Ctl("cleartag")
57 14b3f96d 2019-10-26 op }
58 14b3f96d 2019-10-26 op
59 14b3f96d 2019-10-26 op sep := ""
60 14b3f96d 2019-10-26 op for _, arg := range flag.Args() {
61 14b3f96d 2019-10-26 op _, err = win.Write("tag", []byte(sep+arg))
62 14b3f96d 2019-10-26 op sep = " "
63 14b3f96d 2019-10-26 op }
64 14b3f96d 2019-10-26 op }