Forward mailto links to server via ./aerc <mailto>
This commit is contained in:
parent
7a489cb001
commit
66a9052f0f
2 changed files with 25 additions and 3 deletions
11
aerc.go
11
aerc.go
|
@ -94,15 +94,15 @@ var (
|
|||
)
|
||||
|
||||
func usage() {
|
||||
log.Fatal("Usage: aerc [-v]")
|
||||
log.Fatal("Usage: aerc [-v] [mailto:...]")
|
||||
}
|
||||
|
||||
func main() {
|
||||
// TODO: Support starting with mailto links, ad-hoc accounts, etc
|
||||
opts, optind, err := getopt.Getopts(os.Args, "v")
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
usage()
|
||||
return
|
||||
}
|
||||
for _, opt := range opts {
|
||||
switch opt.Option {
|
||||
|
@ -111,8 +111,13 @@ func main() {
|
|||
return
|
||||
}
|
||||
}
|
||||
if optind != len(os.Args) {
|
||||
args := os.Args[optind:]
|
||||
if len(args) > 1 {
|
||||
usage()
|
||||
return
|
||||
} else if len(args) == 1 {
|
||||
lib.ConnectAndExec(args[0])
|
||||
return
|
||||
}
|
||||
|
||||
var (
|
||||
|
|
|
@ -2,6 +2,7 @@ package lib
|
|||
|
||||
import (
|
||||
"bufio"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
|
@ -80,3 +81,19 @@ func (as *AercServer) handleClient(conn net.Conn) {
|
|||
}
|
||||
as.logger.Printf("Closed Unix connection %d", clientId)
|
||||
}
|
||||
|
||||
func ConnectAndExec(msg string) error {
|
||||
sockpath := path.Join(xdg.RuntimeDir(), "aerc.sock")
|
||||
conn, err := net.Dial("unix", sockpath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
conn.Write([]byte(msg + "\n"))
|
||||
scanner := bufio.NewScanner(conn)
|
||||
if !scanner.Scan() {
|
||||
return errors.New("No response from server")
|
||||
}
|
||||
result := scanner.Text()
|
||||
fmt.Println(result)
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue