diff options
Diffstat (limited to 'tools/rfcToKindle/main.go')
-rw-r--r-- | tools/rfcToKindle/main.go | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/tools/rfcToKindle/main.go b/tools/rfcToKindle/main.go deleted file mode 100644 index 0f4f2dd9ec4f..000000000000 --- a/tools/rfcToKindle/main.go +++ /dev/null @@ -1,89 +0,0 @@ -// Author: wpcarro@gmail.com -// -// Wirelessly transfer RFC documents to your Kindle to device for an alternative -// medium for reading. -// -// Usage: -// ```shell -// > go run rfcToKindle.go -document rfc6479 -recipient username@kindle.com -// ``` -// -// This uses `sendgmr` to send the file to the Kindle. Make sure: -// 1. That `sendgmr` is installed and available on $PATH. -// 2. That it is configured to work with your preferred email address. -// 3. That the email address `sendgmr` is configured to use is whitelisted in -// your Kindle "Personal Document Settings". - -package main - -import ( - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "net/http" - "os" - "os/exec" - "strings" -) - -func main() { - document := flag.String("document", "", "(Required) The name of the document to fetch. For example \"RFC6479\".") - recipient := flag.String("recipient", "", "(Required) The email address of the Kindle device.") - subject := flag.String("subject", "", "(Optional) The email address of the Kindle device.") - flag.Parse() - - if *document == "" { - // TODO: Is log.Fatal the best function to use here? - log.Fatal("-document cannot be empty. See -help for more information.") - } - - if *recipient == "" { - log.Fatal("-recipient cannot be empty. See -help for more information.") - } - - *document = strings.ToLower(*document) - - url := fmt.Sprintf("https://www.ietf.org/rfc/%s.txt", *document) - resp, err := http.Get(url) - fmt.Printf("Downloading %s ... ", url) - - if err != nil { - log.Fatal(err) - } - defer resp.Body.Close() - - f, err := ioutil.TempFile("", fmt.Sprintf("%s-*.txt", *document)) - if err != nil { - log.Fatal(err) - } - // TODO: Verify if this is cleaning up or not. - defer os.Remove(f.Name()) - - _, err = io.Copy(f, resp.Body) - if err != nil { - log.Fatal(err) - } - fmt.Println("done.") - - if *subject == "" { - *subject = fmt.Sprintf("%s - Sent from rfcToKindle.go", *document) - } - - // Although I couldn't find it documented anywhere, the email sent to the - // Kindle must have a body, even if the body isn't used for anything. - fmt.Printf("Emailing %s to %s ... ", f.Name(), *recipient) - cmd := exec.Command("sendgmr", - fmt.Sprintf("--to=%s", *recipient), - fmt.Sprintf("--body_file=%s", f.Name()), - fmt.Sprintf("--subject=%s", *subject), - fmt.Sprintf("--attachment_files=%s", f.Name())) - err = cmd.Run() - if err != nil { - log.Fatal(err) - } - fmt.Println("done.") - - os.Exit(0) -} |