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
This commit is contained in:
William Carroll 2020-02-09 13:47:48 +00:00
parent ec4c8472ca
commit 64654d1d6d
6 changed files with 43 additions and 21 deletions

View file

@ -1,10 +0,0 @@
{ depot ? import <depot> {}, ... }:
depot.buildGo.program {
name = "monzo_ynab";
srcs = [
./utils.go
./main.go
./monzo.go
];
}

16
monzo_ynab/job.nix Normal file
View file

@ -0,0 +1,16 @@
{
depot ? import <depot> {},
briefcase ? import <briefcase> {},
...
}:
depot.buildGo.program {
name = "job";
srcs = [
./main.go
];
deps = with briefcase.gopkgs; [
kv
utils
];
}

View file

@ -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.

View file

@ -1,49 +0,0 @@
package main
import "log"
func failOn(err error) {
if err != nil {
log.Fatal(err)
}
}
// Make a simple GET request to `url`. Fail if anything returns an error. I'd
// 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 {
client := &http.Client{}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
log.Fatal(err)
}
for k, v := range headers {
req.Header.Add(k, v)
}
res, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer res.Body.Close()
if debug {
bytes, _ := httputil.DumpRequest(req, true)
log.Println(string(bytes))
bytes, _ = httputil.DumpResponse(res, true)
log.Println(string(bytes))
}
if res.StatusCode == http.StatusOK {
bytes, err := ioutil.ReadAll(res.Body)
if err != nil {
log.Fatal(err)
}
return string(bytes)
} else {
log.Println(res)
log.Fatalf("HTTP status code of response not OK: %v\n", res.StatusCode)
return ""
}
}