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

@ -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: {

11
gopkgs/utils/default.nix Normal file
View file

@ -0,0 +1,11 @@
{
depot ? import <depot> {},
...
}:
depot.buildGo.package {
name = "utils";
srcs = [
./utils.go
];
}

View file

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

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.