about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2020-02-09T13·47+0000
committerWilliam Carroll <wpcarro@gmail.com>2020-02-10T10·06+0000
commit64654d1d6d1f36a20e00ee6cdc3866ff009c3a0a (patch)
tree3a764c88197e704a86ef527467b49a933c9f242d
parentec4c8472ca8eaed9a40d5decf5f909bdda96ec62 (diff)
Create gopkgs directory for golang libs
- Created a gopkgs directory and registered it with default.nix's readTree
- Moved monzo_ynab/utils -> gopkgs
- Consumed utils.go in main.go
- Renamed monzo_ynab -> job
-rw-r--r--default.nix2
-rw-r--r--gopkgs/utils/default.nix11
-rw-r--r--gopkgs/utils/utils.go (renamed from monzo_ynab/utils.go)15
-rw-r--r--monzo_ynab/default.nix10
-rw-r--r--monzo_ynab/job.nix16
-rw-r--r--monzo_ynab/main.go10
6 files changed, 43 insertions, 21 deletions
diff --git a/default.nix b/default.nix
index ff4f40d8f943..74268c803961 100644
--- a/default.nix
+++ b/default.nix
@@ -20,6 +20,8 @@ let
   localPkgs = readTree: {
     blog = readTree ./blog;
     lisp = readTree ./lisp;
+    gopkgs = readTree ./gopkgs;
+    monzo_ynab = readTree ./monzo_ynab;
     third_party = readTree ./third_party;
   };
 in fix(self: {
diff --git a/gopkgs/utils/default.nix b/gopkgs/utils/default.nix
new file mode 100644
index 000000000000..d92b82ca4d03
--- /dev/null
+++ b/gopkgs/utils/default.nix
@@ -0,0 +1,11 @@
+{
+  depot ? import <depot> {},
+  ...
+}:
+
+depot.buildGo.package {
+  name = "utils";
+  srcs = [
+    ./utils.go
+  ];
+}
diff --git a/monzo_ynab/utils.go b/gopkgs/utils/utils.go
index 9b8843f24a77..24a01cea9d1d 100644
--- a/monzo_ynab/utils.go
+++ b/gopkgs/utils/utils.go
@@ -1,8 +1,15 @@
-package main
+// Some utility functions to tidy up my Golang.
+package utils
 
-import "log"
+import (
+	"log"
+	"io/ioutil"
+	"net/http"
+	"net/http/httputil"
+)
 
-func failOn(err error) {
+// Call log.Fatal with `err` when it's not nil.
+func FailOn(err error) {
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -12,7 +19,7 @@ func failOn(err error) {
 // like to accumulate a library of these, so that I can write scrappy Go
 // quickly. For now, this function just returns the body of the response back as
 // a string.
-func simpleGet(url string, headers map[string]string, debug bool) string {
+func SimpleGet(url string, headers map[string]string, debug bool) string {
 	client := &http.Client{}
 	req, err := http.NewRequest("GET", url, nil)
 	if err != nil {
diff --git a/monzo_ynab/default.nix b/monzo_ynab/default.nix
deleted file mode 100644
index 735029bb1808..000000000000
--- a/monzo_ynab/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ depot ? import <depot> {}, ... }:
-
-depot.buildGo.program {
-  name = "monzo_ynab";
-  srcs = [
-    ./utils.go
-    ./main.go
-    ./monzo.go
-  ];
-}
diff --git a/monzo_ynab/job.nix b/monzo_ynab/job.nix
new file mode 100644
index 000000000000..f6cb78789000
--- /dev/null
+++ b/monzo_ynab/job.nix
@@ -0,0 +1,16 @@
+{
+  depot ? import <depot> {},
+  briefcase ? import <briefcase> {},
+  ...
+}:
+
+depot.buildGo.program {
+  name = "job";
+  srcs = [
+    ./main.go
+  ];
+  deps = with briefcase.gopkgs; [
+    kv
+    utils
+  ];
+}
diff --git a/monzo_ynab/main.go b/monzo_ynab/main.go
index 1709ffda786e..10dc9f3effe5 100644
--- a/monzo_ynab/main.go
+++ b/monzo_ynab/main.go
@@ -13,7 +13,6 @@ import (
 	"bytes"
 	"encoding/json"
 	"fmt"
-	"io/ioutil"
 	"log"
 	"net/http"
 	"net/http/httputil"
@@ -21,6 +20,7 @@ import (
 	"strings"
 	"os"
 	"os/exec"
+	"utils"
 )
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -78,9 +78,7 @@ func getTokens(code string) *Tokens {
 		"redirect_uri":  {redirectURI},
 		"code":          {code},
 	})
-	if err != nil {
-		log.Fatal(err)
-	}
+	utils.FailOn(err)
 	defer res.Body.Close()
 	payload := &accessTokenResponse{}
 	json.NewDecoder(res.Body).Decode(payload)
@@ -136,9 +134,7 @@ func authorize() {
 	req, _ := http.NewRequest("POST", "http://localhost:4242/set-tokens", bytes.NewBuffer(payload))
 	req.Header.Set("Content-Type", "application/json")
 	_, err := client.Do(req)
-	if err != nil {
-		log.Fatal(err)
-	}
+	utils.FailOn(err)
 }
 
 // Retrieves the access token from the tokens server.