From 82386fe681cb667c07f472f19b2ab8d616020826 Mon Sep 17 00:00:00 2001 From: Jose Then Date: Mon, 21 Jan 2019 22:59:00 -0500 Subject: [PATCH 01/25] Documentation Update --- README.md | 29 +++++++++++++++++++++++++++++ images/output.png | Bin 0 -> 215597 bytes 2 files changed, 29 insertions(+) create mode 100644 README.md create mode 100644 images/output.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..b0ac418 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# HackerNews Go + +[![Build Status](https://travis-ci.org/JoseThen/HN-GO.svg?branch=master)](https://travis-ci.org/JoseThen/HN-GO) + +A HackerNews client writtent in Go + +--- + +## Usage + +To get the top stories + +``` +hn top +``` + +To get most recent (new) stories + +``` +hn new +``` + +- The default number of stories for both subcommands is 15. You can change that by using the `--num` or `-num` flag +- If you do not build the executable then you can simply do `go run hn.go top --num 30` + +## Output + +When running a command you will get 2 columns for Title and URL in your terminal: +![Image of HN GO output](images/output.png) diff --git a/images/output.png b/images/output.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d627ff93850de979e2faaaab176b743abfbcdc GIT binary patch literal 215597 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ⅇ@-Kd8n$cbcwHDAJixqcI$8d*s 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 Date: Sun, 22 Sep 2019 00:07:55 -0400 Subject: [PATCH 02/25] Update Makefile --- Makefile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5591e2c --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +.PHONY: build run compile + + +build: + go build -o bin/main main.go + +run: + go run main.go + +compile: + echo "Compiling for every OS and Platform" + GOOS=linux GOARCH=arm go build -o bin/main-linux-arm main.go + GOOS=linux GOARCH=arm64 go build -o bin/main-linux-arm64 main.go + GOOS=freebsd GOARCH=386 go build -o bin/main-freebsd-386 main.go + From a4afe1ed9aa8c225adc5e5a8cd3917a97fea12c3 Mon Sep 17 00:00:00 2001 From: josethen Date: Sun, 22 Sep 2019 00:11:44 -0400 Subject: [PATCH 03/25] Change Main file name --- hn.go => main.go | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename hn.go => main.go (100%) diff --git a/hn.go b/main.go similarity index 100% rename from hn.go rename to main.go From 09eb4f2846ce512836a85804b63ffae8cb9042a6 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Thu, 5 Dec 2019 23:11:24 -0500 Subject: [PATCH 04/25] Remove Utility Functions to another Directory --- main.go | 82 ++++------------------------------------------------ util/get.go | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 76 deletions(-) create mode 100644 util/get.go diff --git a/main.go b/main.go index b3be0f1..b19f433 100644 --- a/main.go +++ b/main.go @@ -1,15 +1,12 @@ package main import ( - "encoding/json" "flag" "fmt" - "io/ioutil" - "log" - "net/http" "os" "text/tabwriter" - "time" + + get "./util" ) // Story hn Stories @@ -60,9 +57,9 @@ func main() { defer w.Flush() fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") fmt.Fprintf(w, "\n %s\t%s\t", "----", "----") - var topIds = getIds(topListNumber, "top") + var topIds = get.Ids(topListNumber, "top") for _, id := range topIds { - var results = getData(id) + var results = get.Data(id) fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) } } @@ -71,77 +68,10 @@ func main() { defer w.Flush() fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") fmt.Fprintf(w, "\n %s\t%s\t", "----", "----") - var newIds = getIds(topListNumber, "new") + var newIds = get.Ids(topListNumber, "new") for _, id := range newIds { - var results = getData(id) + var results = get.Data(id) fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) } } } - -func getIds(amount int, category string) []int { - url := fmt.Sprintf("https://hacker-news.firebaseio.com/v0/%sstories.json", category) - var topArray []int - - client := http.Client{ - Timeout: time.Second * 10, //Max of 2 secs - } - - req, err := http.NewRequest(http.MethodGet, url, nil) - if err != nil { - log.Fatal(err) - } - - res, getErr := client.Do(req) - if getErr != nil { - log.Fatal(getErr) - } - - body, readErr := ioutil.ReadAll(res.Body) - if readErr != nil { - log.Fatal(readErr) - } - - jsonErr := json.Unmarshal([]byte(body), &topArray) - if jsonErr != nil { - log.Fatal(jsonErr) - } - - defer res.Body.Close() - return topArray[:amount] - -} - -func getData(id int) Story { - url := fmt.Sprintf("https://hacker-news.firebaseio.com/v0/item/%d.json", id) - var story Story - // fmt.Println(url) - - client := http.Client{ - Timeout: time.Second * 2, //Max of 2 secs - } - - req, err := http.NewRequest(http.MethodGet, url, nil) - if err != nil { - log.Fatal(err) - } - - res, getErr := client.Do(req) - if getErr != nil { - log.Fatal(getErr) - } - - body, readErr := ioutil.ReadAll(res.Body) - if readErr != nil { - log.Fatal(readErr) - } - - jsonErr := json.Unmarshal([]byte(body), &story) - if jsonErr != nil { - log.Fatal(jsonErr) - } - - // defer res.Body.Close() - return story - -} diff --git a/util/get.go b/util/get.go new file mode 100644 index 0000000..3e6fc82 --- /dev/null +++ b/util/get.go @@ -0,0 +1,83 @@ +package get + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "log" + "net/http" + "time" +) + +// Story hn Stories +type Story struct { + Title string `json:"title"` + URL string `json:"url"` +} + +func Ids(amount int, category string) []int { + url := fmt.Sprintf("https://hacker-news.firebaseio.com/v0/%sstories.json", category) + var topArray []int + + client := http.Client{ + Timeout: time.Second * 10, //Max of 2 secs + } + + req, err := http.NewRequest(http.MethodGet, url, nil) + if err != nil { + log.Fatal(err) + } + + res, getErr := client.Do(req) + if getErr != nil { + log.Fatal(getErr) + } + + body, readErr := ioutil.ReadAll(res.Body) + if readErr != nil { + log.Fatal(readErr) + } + + jsonErr := json.Unmarshal([]byte(body), &topArray) + if jsonErr != nil { + log.Fatal(jsonErr) + } + + defer res.Body.Close() + return topArray[:amount] + +} + +func Data(id int) Story { + url := fmt.Sprintf("https://hacker-news.firebaseio.com/v0/item/%d.json", id) + var story Story + // fmt.Println(url) + + client := http.Client{ + Timeout: time.Second * 2, //Max of 2 secs + } + + req, err := http.NewRequest(http.MethodGet, url, nil) + if err != nil { + log.Fatal(err) + } + + res, getErr := client.Do(req) + if getErr != nil { + log.Fatal(getErr) + } + + body, readErr := ioutil.ReadAll(res.Body) + if readErr != nil { + log.Fatal(readErr) + } + + jsonErr := json.Unmarshal([]byte(body), &story) + if jsonErr != nil { + log.Fatal(jsonErr) + } + + // defer res.Body.Close() + return story + +} From 1f8a37f38d0536285e498671fa80acf28fe7d42d Mon Sep 17 00:00:00 2001 From: JoseThen Date: Thu, 5 Dec 2019 23:18:42 -0500 Subject: [PATCH 05/25] Update Tests + Add Structure to them --- .travis.yml | 2 +- hn_test.go => tests/get_test.go | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) rename hn_test.go => tests/get_test.go (84%) diff --git a/.travis.yml b/.travis.yml index 00b08c8..8c985c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,4 +13,4 @@ email: false # failing test, we want to see both. Configure golangci-lint with a # .golangci.yml file at the top level of your repo. script: - - go test -v -race ./... # Run all the tests with the race detector enabled + - go test ./tests -v -race ./... # Run all the tests with the race detector enabled diff --git a/hn_test.go b/tests/get_test.go similarity index 84% rename from hn_test.go rename to tests/get_test.go index bb81614..3253a9e 100644 --- a/hn_test.go +++ b/tests/get_test.go @@ -3,13 +3,15 @@ package main import ( "reflect" "testing" + + get "../util" ) const testNum = 81 const testType = "string" func TestIdGetter(t *testing.T) { - got := getIds(testNum, "top") + got := get.Ids(testNum, "top") if len(got) != testNum { t.Errorf("got '%d' want '%d'", len(got), testNum) @@ -17,7 +19,7 @@ func TestIdGetter(t *testing.T) { } func TestDataGetter(t *testing.T) { - got := getData(1) + got := get.Data(1) theType := reflect.TypeOf(got.Title) if theType != reflect.TypeOf(testType) { From f883e16147c2b57932a3fcd6970f354614a797ad Mon Sep 17 00:00:00 2001 From: JoseThen Date: Thu, 5 Dec 2019 23:21:10 -0500 Subject: [PATCH 06/25] Update Travis Yaml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8c985c7..19f650f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,4 +13,4 @@ email: false # failing test, we want to see both. Configure golangci-lint with a # .golangci.yml file at the top level of your repo. script: - - go test ./tests -v -race ./... # Run all the tests with the race detector enabled + - go test ./tests -v -race # Run all the tests with the race detector enabled From ea82004f78f389c127fb5b97a6e3938f0ada85e2 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Thu, 5 Dec 2019 23:24:34 -0500 Subject: [PATCH 07/25] Update GO Version in Travis Environment --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 19f650f..0fb253e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ sudo: false language: go go: - - '1.10' + - '1.13.4' # Only clone the most recent commit. git: depth: 1 From 10515a14a929414554b2e4d20b7194a8aa98ba06 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Thu, 5 Dec 2019 23:35:49 -0500 Subject: [PATCH 08/25] Add Github Actions, Remove Travis CI --- .github/workflows/test_master.yaml | 31 ++++++++++++++++++++++++++++++ .github/workflows/test_pr.yaml | 28 +++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 .github/workflows/test_master.yaml create mode 100644 .github/workflows/test_pr.yaml diff --git a/.github/workflows/test_master.yaml b/.github/workflows/test_master.yaml new file mode 100644 index 0000000..10a6d61 --- /dev/null +++ b/.github/workflows/test_master.yaml @@ -0,0 +1,31 @@ +name: Go +on: + push: + branches: + - master +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - name: Set up Go 1.13.4 + uses: actions/setup-go@v1 + with: + go-version: 1.13.4 + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v1 + + - name: Get dependencies + run: | + go get -v -t -d ./... + if [ -f Gopkg.toml ]; then + curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh + dep ensure + fi + + - name: Test + run: go test ./tests -v -race diff --git a/.github/workflows/test_pr.yaml b/.github/workflows/test_pr.yaml new file mode 100644 index 0000000..0d4e5a3 --- /dev/null +++ b/.github/workflows/test_pr.yaml @@ -0,0 +1,28 @@ +name: Go +on: [pull_request] +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - name: Set up Go 1.13.4 + uses: actions/setup-go@v1 + with: + go-version: 1.13.4 + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v1 + + - name: Get dependencies + run: | + go get -v -t -d ./... + if [ -f Gopkg.toml ]; then + curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh + dep ensure + fi + + - name: Test + run: go test ./tests -v -race From 3313e176f688165fd624de629e48acb0e45af570 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Thu, 5 Dec 2019 23:42:10 -0500 Subject: [PATCH 09/25] Update --- .github/workflows/test_master.yaml | 2 +- .github/workflows/test_pr.yaml | 2 +- .travis.yml | 16 ---------------- 3 files changed, 2 insertions(+), 18 deletions(-) delete mode 100644 .travis.yml diff --git a/.github/workflows/test_master.yaml b/.github/workflows/test_master.yaml index 10a6d61..7a2851e 100644 --- a/.github/workflows/test_master.yaml +++ b/.github/workflows/test_master.yaml @@ -1,4 +1,4 @@ -name: Go +name: Test Master on: push: branches: diff --git a/.github/workflows/test_pr.yaml b/.github/workflows/test_pr.yaml index 0d4e5a3..054b602 100644 --- a/.github/workflows/test_pr.yaml +++ b/.github/workflows/test_pr.yaml @@ -1,4 +1,4 @@ -name: Go +name: Test PR on: [pull_request] jobs: diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0fb253e..0000000 --- a/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -sudo: false -language: go -go: - - '1.13.4' -# Only clone the most recent commit. -git: -depth: 1 -# Don't email me the results of the test runs. -notifications: -email: false - -# script always runs to completion (set +e). If we have linter issues AND a -# failing test, we want to see both. Configure golangci-lint with a -# .golangci.yml file at the top level of your repo. -script: - - go test ./tests -v -race # Run all the tests with the race detector enabled From 9e97acc012068c18a96c6b5d641fff438e9896d2 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Thu, 5 Dec 2019 23:55:22 -0500 Subject: [PATCH 10/25] Update ReadMe --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b0ac418..7833898 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # HackerNews Go -[![Build Status](https://travis-ci.org/JoseThen/HN-GO.svg?branch=master)](https://travis-ci.org/JoseThen/HN-GO) +[![Build Status](https://github.com/JoseThen/HN-GO/workflows/Test%20Master/badge.svg)](https://github.com/JoseThen/HN-GO/blob/master/.github/workflows/test_master.yaml) A HackerNews client writtent in Go From 1276d8389e42b18f20dfc4d4ea46ac2f63868d0a Mon Sep 17 00:00:00 2001 From: JoseThen Date: Fri, 6 Dec 2019 00:04:57 -0500 Subject: [PATCH 11/25] Add a Build Workflow and Badge --- .github/workflows/build_master.yaml | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/build_master.yaml diff --git a/.github/workflows/build_master.yaml b/.github/workflows/build_master.yaml new file mode 100644 index 0000000..7a822d3 --- /dev/null +++ b/.github/workflows/build_master.yaml @@ -0,0 +1,31 @@ +name: Test Master +on: + push: + branches: + - master +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - name: Set up Go 1.13.4 + uses: actions/setup-go@v1 + with: + go-version: 1.13.4 + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v1 + + - name: Get dependencies + run: | + go get -v -t -d ./... + if [ -f Gopkg.toml ]; then + curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh + dep ensure + fi + + - name: Build Binary + run: go build -v . From 5fcf247f4cd244cb463f3018564949934dc20f5d Mon Sep 17 00:00:00 2001 From: JoseThen Date: Fri, 6 Dec 2019 00:05:36 -0500 Subject: [PATCH 12/25] Update ReadMe --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7833898..3e4a14a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # HackerNews Go -[![Build Status](https://github.com/JoseThen/HN-GO/workflows/Test%20Master/badge.svg)](https://github.com/JoseThen/HN-GO/blob/master/.github/workflows/test_master.yaml) +[![Build Status](https://github.com/JoseThen/HN-GO/workflows/Build%20Master/badge.svg)](https://github.com/JoseThen/HN-GO/blob/master/.github/workflows/build_master.yaml) + +[![Test Status](https://github.com/JoseThen/HN-GO/workflows/Test%20Master/badge.svg)](https://github.com/JoseThen/HN-GO/blob/master/.github/workflows/test_master.yaml) A HackerNews client writtent in Go From fd3d4d8bdcd5aac5ec8e3ce2c70282bb775ebbe0 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Fri, 6 Dec 2019 00:06:49 -0500 Subject: [PATCH 13/25] Update Github Actions for Build --- .github/workflows/build_master.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_master.yaml b/.github/workflows/build_master.yaml index 7a822d3..871496a 100644 --- a/.github/workflows/build_master.yaml +++ b/.github/workflows/build_master.yaml @@ -1,4 +1,4 @@ -name: Test Master +name: Build Master on: push: branches: From 534efb6786258eb21c6195fbbbadb4d33634c55c Mon Sep 17 00:00:00 2001 From: JoseThen Date: Fri, 6 Dec 2019 08:52:18 -0500 Subject: [PATCH 14/25] Small Update --- .gitignore | 5 ++++- main.go | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index ba7ea82..13510f3 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,7 @@ *.test # Output of the go coverage tool, specifically when used with LiteIDE -*.out \ No newline at end of file +*.out + +bin/ +hn \ No newline at end of file diff --git a/main.go b/main.go index b19f433..def3a2a 100644 --- a/main.go +++ b/main.go @@ -1,12 +1,11 @@ package main import ( + get "./util" "flag" "fmt" "os" "text/tabwriter" - - get "./util" ) // Story hn Stories From 999234d74efcb9ba480ead80dd76039a7bc9c188 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Fri, 6 Dec 2019 09:28:41 -0500 Subject: [PATCH 15/25] Add Go Modules --- go.mod | 3 +++ main.go | 2 +- tests/get_test.go | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 go.mod diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..de586c0 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/JoseThen/HN-GO + +go 1.13 diff --git a/main.go b/main.go index def3a2a..c4bfc85 100644 --- a/main.go +++ b/main.go @@ -1,9 +1,9 @@ package main import ( - get "./util" "flag" "fmt" + get "github.com/JoseThen/HN-GO/util" "os" "text/tabwriter" ) diff --git a/tests/get_test.go b/tests/get_test.go index 3253a9e..0f7bbd7 100644 --- a/tests/get_test.go +++ b/tests/get_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - get "../util" + get "github.com/JoseThen/HN-GO/util" ) const testNum = 81 From 1328bac51da9d49cfa033ba55e9a10b79b8d0108 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Fri, 6 Dec 2019 09:43:43 -0500 Subject: [PATCH 16/25] Change Repo Name --- Makefile | 8 ++++---- go.mod | 4 +++- go.sum | 2 ++ main.go | 2 +- tests/get_test.go | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 go.sum diff --git a/Makefile b/Makefile index 5591e2c..4d355ee 100644 --- a/Makefile +++ b/Makefile @@ -2,14 +2,14 @@ build: - go build -o bin/main main.go + go build -o bin/hn main.go run: go run main.go compile: echo "Compiling for every OS and Platform" - GOOS=linux GOARCH=arm go build -o bin/main-linux-arm main.go - GOOS=linux GOARCH=arm64 go build -o bin/main-linux-arm64 main.go - GOOS=freebsd GOARCH=386 go build -o bin/main-freebsd-386 main.go + GOOS=linux GOARCH=arm go build -o bin/hn-linux-arm main.go + GOOS=linux GOARCH=arm64 go build -o bin/hn-linux-arm64 main.go + GOOS=freebsd GOARCH=386 go build -o bin/hn-freebsd-386 main.go diff --git a/go.mod b/go.mod index de586c0..6caac31 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,5 @@ -module github.com/JoseThen/HN-GO +module github.com/JoseThen/hn go 1.13 + +require github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..d0d2057 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc h1:DsvqWvMHgWCC25WUM0Ry2EaG4jx1m4QubxJnCYodKGI= +github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc/go.mod h1:DrU2iAemR02GvIWIcFENlx3OXEvx60t9iCS69SmRBR0= diff --git a/main.go b/main.go index c4bfc85..b8267f1 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,7 @@ package main import ( "flag" "fmt" - get "github.com/JoseThen/HN-GO/util" + get "github.com/JoseThen/hn/util" "os" "text/tabwriter" ) diff --git a/tests/get_test.go b/tests/get_test.go index 0f7bbd7..34f9133 100644 --- a/tests/get_test.go +++ b/tests/get_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - get "github.com/JoseThen/HN-GO/util" + get "github.com/JoseThen/hn/util" ) const testNum = 81 From d1b2f35df9ec48081945ad8b84c2c92be603ceec Mon Sep 17 00:00:00 2001 From: JoseThen Date: Fri, 6 Dec 2019 09:44:18 -0500 Subject: [PATCH 17/25] Update ReadMe --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3e4a14a..564f00e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # HackerNews Go -[![Build Status](https://github.com/JoseThen/HN-GO/workflows/Build%20Master/badge.svg)](https://github.com/JoseThen/HN-GO/blob/master/.github/workflows/build_master.yaml) +[![Build Status](https://github.com/JoseThen/hn/workflows/Build%20Master/badge.svg)](https://github.com/JoseThen/hn/blob/master/.github/workflows/build_master.yaml) -[![Test Status](https://github.com/JoseThen/HN-GO/workflows/Test%20Master/badge.svg)](https://github.com/JoseThen/HN-GO/blob/master/.github/workflows/test_master.yaml) +[![Test Status](https://github.com/JoseThen/hn/workflows/Test%20Master/badge.svg)](https://github.com/JoseThen/hn/blob/master/.github/workflows/test_master.yaml) A HackerNews client writtent in Go From 48af6de60625b789bbdff965c8a97d445b6dc2ea Mon Sep 17 00:00:00 2001 From: JoseThen Date: Fri, 6 Dec 2019 22:43:03 -0500 Subject: [PATCH 18/25] Use Flags instead of commands --- go.mod | 7 ++++++- go.sum | 9 +++++++++ main.go | 49 +++++++++++-------------------------------------- 3 files changed, 26 insertions(+), 39 deletions(-) diff --git a/go.mod b/go.mod index 6caac31..2c9271d 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,9 @@ module github.com/JoseThen/hn go 1.13 -require github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc // indirect +require ( + github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc // indirect + github.com/fatih/color v1.7.0 + github.com/mattn/go-colorable v0.1.4 // indirect + github.com/mattn/go-isatty v0.0.10 // indirect +) diff --git a/go.sum b/go.sum index d0d2057..bff78a7 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,11 @@ github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc h1:DsvqWvMHgWCC25WUM0Ry2EaG4jx1m4QubxJnCYodKGI= github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc/go.mod h1:DrU2iAemR02GvIWIcFENlx3OXEvx60t9iCS69SmRBR0= +github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10 h1:qxFzApOv4WsAL965uUPIsXzAKCZxN2p9UqdhFS4ZW10= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/main.go b/main.go index b8267f1..7e9118d 100644 --- a/main.go +++ b/main.go @@ -3,9 +3,10 @@ package main import ( "flag" "fmt" - get "github.com/JoseThen/hn/util" "os" "text/tabwriter" + + get "github.com/JoseThen/hn/util" ) // Story hn Stories @@ -19,55 +20,27 @@ func main() { // minwidth, tabwidth, padding, padchar, flags w.Init(os.Stdout, 8, 8, 0, '\t', 0) // SubCommands - topCommand := flag.NewFlagSet("top", flag.ExitOnError) - newCommand := flag.NewFlagSet("new", flag.ExitOnError) - - // Top subcommand flag pointers - var topListNumber int - topCommand.IntVar(&topListNumber, "num", 15, "Number of stories to show. Default is 15.") - - // New subcommand flag pointers - // newListNumber := newCommand.Int("num", 15, "Number of stories to show. Default is 15.") + topFlag := flag.Bool("top", true, "Display the top HN posts.") + newFlag := flag.Bool("new", true, "Display the newest HN posts.") + countFlag := flag.Int("count", 10, "Number of posts to display.") - if len(os.Args) < 2 { - fmt.Println("You need to choose a subcommand") - os.Exit(1) - } - - /* - Switch on the subcommand - Parse the flags fore the appropriate FlagSet - FlagSet.Parse() requires a set of arguments to parse as input - os.Args[2:] will be all arguments starting after the subcommand at os.Args[1] - */ - switch os.Args[1] { - case "top": - topCommand.Parse(os.Args[2:]) - case "new": - newCommand.Parse(os.Args[2:]) - default: - flag.PrintDefaults() - os.Exit(1) - } + flag.Parse() - // Check which subcommand was Parsed using the FlagSet.Parsed() function. Handle each case accordingly. - // FlagSet.Parse() will evaluate to false if no flags were parsed (i.e. the user did not provide any flags) - if topCommand.Parsed() { + switch { + case *topFlag: defer w.Flush() fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") fmt.Fprintf(w, "\n %s\t%s\t", "----", "----") - var topIds = get.Ids(topListNumber, "top") + var topIds = get.Ids(*countFlag, "top") for _, id := range topIds { var results = get.Data(id) fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) } - } - - if newCommand.Parsed() { + case *newFlag: defer w.Flush() fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") fmt.Fprintf(w, "\n %s\t%s\t", "----", "----") - var newIds = get.Ids(topListNumber, "new") + var newIds = get.Ids(*countFlag, "new") for _, id := range newIds { var results = get.Data(id) fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) From 3675cac3abeb2474c1d0e13d7b12db871648247d Mon Sep 17 00:00:00 2001 From: JoseThen Date: Fri, 6 Dec 2019 23:20:51 -0500 Subject: [PATCH 19/25] Small Update --- .gitignore | 3 ++- Makefile | 28 ++++++++++++++++++++++------ README.md | 9 +++++---- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 13510f3..c386d1b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ *.out bin/ -hn \ No newline at end of file +hn +realease/ \ No newline at end of file diff --git a/Makefile b/Makefile index 4d355ee..06c082f 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,31 @@ -.PHONY: build run compile +.PHONY: build run compile build-linux build-windows build-darwin +VERSION ?= 1.0.0 build: - go build -o bin/hn main.go + go build -o release/hn main.go run: go run main.go -compile: +build-darwin: + echo "Compiling for Darwin" + GOOS=darwin GOARCH=386 go build -o release/hn-v${VERSION}-darwin-386 main.go + GOOS=darwin GOARCH=amd64 go build -o release/hn-v${VERSION}-darwin-amd64 main.go + # GOOS=darwin GOARCH=arm go build -v -o release/hn-v${VERSION}-darwin-arm main.go + # GOOS=darwin GOARCH=arm64 go build -o release/hn-v${VERSION}-darwin-arm64 main.go + +build-windows: + echo "Compiling for Windows" + GOOS=windows GOARCH=amd64 go build -o release/hn-v${VERSION}-windows-amd64 main.go + GOOS=windows GOARCH=386 go build -o release/hn-v${VERSION}-windows-386 main.go + +build-linux: echo "Compiling for every OS and Platform" - GOOS=linux GOARCH=arm go build -o bin/hn-linux-arm main.go - GOOS=linux GOARCH=arm64 go build -o bin/hn-linux-arm64 main.go - GOOS=freebsd GOARCH=386 go build -o bin/hn-freebsd-386 main.go + GOOS=linux GOARCH=arm go build -o release/hn-v${VERSION}-linux-arm main.go + GOOS=linux GOARCH=arm64 go build -o release/hn-v${VERSION}-linux-arm64 main.go + GOOS=linux GOARCH=386 go build -o release/hn-v${VERSION}-linux-386 main.go + GOOS=linux GOARCH=amd64 go build -o release/hn-v${VERSION}-linux-amd64 main.go + +compile: build-darwin build-windows build-linux diff --git a/README.md b/README.md index 564f00e..915e87c 100644 --- a/README.md +++ b/README.md @@ -13,17 +13,18 @@ A HackerNews client writtent in Go To get the top stories ``` -hn top +hn -top ``` To get most recent (new) stories ``` -hn new +hn -new ``` -- The default number of stories for both subcommands is 15. You can change that by using the `--num` or `-num` flag -- If you do not build the executable then you can simply do `go run hn.go top --num 30` +- The default number of stories for both subcommands is 10. You can change that by using the `-count` flag +- If you do not build the executable then you can simply do `go run main.go -count 30` +- Note that `-top` will be set by default if no flag is set ## Output From 74c5a29d2686a5f078ce1cb73babfd72f2dd27ea Mon Sep 17 00:00:00 2001 From: JoseThen Date: Tue, 17 Dec 2019 21:29:27 -0500 Subject: [PATCH 20/25] Update --- Makefile | 5 ++++- cmd/root.go | 36 ++++++++++++++++++++++++++++++++++++ go.mod | 1 + go.sum | 32 ++++++++++++++++++++++++++++++++ main.go | 44 ++------------------------------------------ old-main.go | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 124 insertions(+), 43 deletions(-) create mode 100644 cmd/root.go create mode 100644 old-main.go diff --git a/Makefile b/Makefile index 06c082f..8d2579d 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,10 @@ -.PHONY: build run compile build-linux build-windows build-darwin +.PHONY: build run compile build-linux build-windows build-darwin test VERSION ?= 1.0.0 +test: + go test ./tests -v + build: go build -o release/hn main.go diff --git a/cmd/root.go b/cmd/root.go new file mode 100644 index 0000000..5ac4770 --- /dev/null +++ b/cmd/root.go @@ -0,0 +1,36 @@ +package cmd + +import ( + "fmt" + "github.com/spf13/cobra" +) + +var rootCmd = &cobra.Command{ + Use: "hn", + Short: "CLI to get HAcker News Posts and Information", + Long: `hn is a cli utility to get information on the + current posts in Hacker News. It takes advantage of the + Hacker News API.` +} + +// // Execute executes the root command. +// func Execute() error { +// return rootCmd.Execute() +// } + +func Execute() { + if err := rootCmd.Execute(); err != nil { + fmt.Println(err) + os.Exit(1) + } +} + +func init() { + + rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)") + rootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "author name for copyright attribution") + rootCmd.PersistentFlags().StringVarP(&userLicense, "license", "l", "", "name of license for the project") + + rootCmd.AddCommand(addCmd) + rootCmd.AddCommand(initCmd) +} diff --git a/go.mod b/go.mod index 2c9271d..be644be 100644 --- a/go.mod +++ b/go.mod @@ -7,4 +7,5 @@ require ( github.com/fatih/color v1.7.0 github.com/mattn/go-colorable v0.1.4 // indirect github.com/mattn/go-isatty v0.0.10 // indirect + github.com/spf13/cobra v0.0.5 ) diff --git a/go.sum b/go.sum index bff78a7..6e27a20 100644 --- a/go.sum +++ b/go.sum @@ -1,11 +1,43 @@ +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc h1:DsvqWvMHgWCC25WUM0Ry2EaG4jx1m4QubxJnCYodKGI= github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc/go.mod h1:DrU2iAemR02GvIWIcFENlx3OXEvx60t9iCS69SmRBR0= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.10 h1:qxFzApOv4WsAL965uUPIsXzAKCZxN2p9UqdhFS4ZW10= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/main.go b/main.go index 7e9118d..d2e0856 100644 --- a/main.go +++ b/main.go @@ -1,49 +1,9 @@ package main import ( - "flag" - "fmt" - "os" - "text/tabwriter" - - get "github.com/JoseThen/hn/util" + "github.com/JoseThen/hn/cmd" ) -// Story hn Stories -type Story struct { - Title string `json:"title"` - URL string `json:"url"` -} - func main() { - w := new(tabwriter.Writer) - // minwidth, tabwidth, padding, padchar, flags - w.Init(os.Stdout, 8, 8, 0, '\t', 0) - // SubCommands - topFlag := flag.Bool("top", true, "Display the top HN posts.") - newFlag := flag.Bool("new", true, "Display the newest HN posts.") - countFlag := flag.Int("count", 10, "Number of posts to display.") - - flag.Parse() - - switch { - case *topFlag: - defer w.Flush() - fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") - fmt.Fprintf(w, "\n %s\t%s\t", "----", "----") - var topIds = get.Ids(*countFlag, "top") - for _, id := range topIds { - var results = get.Data(id) - fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) - } - case *newFlag: - defer w.Flush() - fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") - fmt.Fprintf(w, "\n %s\t%s\t", "----", "----") - var newIds = get.Ids(*countFlag, "new") - for _, id := range newIds { - var results = get.Data(id) - fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) - } - } + cmd.Execute() } diff --git a/old-main.go b/old-main.go new file mode 100644 index 0000000..37fe766 --- /dev/null +++ b/old-main.go @@ -0,0 +1,49 @@ +package main + +import ( + "flag" + "fmt" + "os" + "text/tabwriter" + + get "github.com/JoseThen/hn/util" +) + +// Story hn Stories +type Story struct { + Title string `json:"title"` + URL string `json:"url"` +} + +func main() { + w := new(tabwriter.Writer) + // minwidth, tabwidth, padding, padchar, flags + w.Init(os.Stdout, 8, 8, 0, '\t', 0) + // SubCommands + topFlag := flag.Bool("top", true, "Display the top HN posts.") + newFlag := flag.Bool("new", true, "Display the newest HN posts.") + countFlag := flag.Int("count", 10, "Number of posts to display.") + + flag.Parse() + + switch { + case *topFlag: + defer w.Flush() + fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") + fmt.Fprintf(w, "\n %s\t%s\t", "-----", "---") + var topIds = get.Ids(*countFlag, "top") + for _, id := range topIds { + var results = get.Data(id) + fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) + } + case *newFlag: + defer w.Flush() + fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") + fmt.Fprintf(w, "\n %s\t%s\t", "-----", "---") + var newIds = get.Ids(*countFlag, "new") + for _, id := range newIds { + var results = get.Data(id) + fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) + } + } +} From 32f4f90d8149f7225e0e7c753bf236d6efcdb9b4 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Wed, 18 Dec 2019 20:31:39 -0500 Subject: [PATCH 21/25] Update --- cmd/root.go | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index 5ac4770..03ecb28 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -2,15 +2,16 @@ package cmd import ( "fmt" + "os" + "github.com/spf13/cobra" ) var rootCmd = &cobra.Command{ - Use: "hn", - Short: "CLI to get HAcker News Posts and Information", - Long: `hn is a cli utility to get information on the - current posts in Hacker News. It takes advantage of the - Hacker News API.` + Use: "hn", + Short: "CLI to get HAcker News Posts and Information", + Long: `Hn is a cli utility to get information on the current posts +in Hacker News. It takes advantage of the Hacker News API.`, } // // Execute executes the root command. @@ -19,18 +20,12 @@ var rootCmd = &cobra.Command{ // } func Execute() { - if err := rootCmd.Execute(); err != nil { - fmt.Println(err) - os.Exit(1) - } + if err := rootCmd.Execute(); err != nil { + fmt.Println(err) + os.Exit(1) + } } func init() { - - rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)") rootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "author name for copyright attribution") - rootCmd.PersistentFlags().StringVarP(&userLicense, "license", "l", "", "name of license for the project") - - rootCmd.AddCommand(addCmd) - rootCmd.AddCommand(initCmd) } From e8ae0ede2c266a29e29cb8a91296389d5694dd1a Mon Sep 17 00:00:00 2001 From: JoseThen Date: Wed, 18 Dec 2019 22:10:44 -0500 Subject: [PATCH 22/25] Update --- LICENSE | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++ cmd/root.go | 43 +++++++---- go.mod | 2 + go.sum | 13 ++++ main.go | 21 ++++-- 5 files changed, 265 insertions(+), 16 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/cmd/root.go b/cmd/root.go index 03ecb28..cdebd5a 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,24 +1,35 @@ +/* +Copyright © 2019 Jose Then + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package cmd import ( "fmt" - "os" - "github.com/spf13/cobra" + "os" ) +// rootCmd represents the base command when called without any subcommands var rootCmd = &cobra.Command{ - Use: "hn", - Short: "CLI to get HAcker News Posts and Information", - Long: `Hn is a cli utility to get information on the current posts -in Hacker News. It takes advantage of the Hacker News API.`, + Use: "hnctl", + Short: "hnctl is a cli client for Hacker News.", + Long: `hnctl is a command line client to browse posts on Hacker News.`, } -// // Execute executes the root command. -// func Execute() error { -// return rootCmd.Execute() -// } - +// Execute adds all child commands to the root command and sets flags appropriately. +// This is called by main.main(). It only needs to happen once to the rootCmd. func Execute() { if err := rootCmd.Execute(); err != nil { fmt.Println(err) @@ -27,5 +38,13 @@ func Execute() { } func init() { - rootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "author name for copyright attribution") + // Here you will define your flags and configuration settings. + // Cobra supports persistent flags, which, if defined here, + // will be global for your application. + + // rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.hnctl.yaml)") + + // Cobra also supports local flags, which will only run + // when this action is called directly. + rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") } diff --git a/go.mod b/go.mod index be644be..c446d91 100644 --- a/go.mod +++ b/go.mod @@ -7,5 +7,7 @@ require ( github.com/fatih/color v1.7.0 github.com/mattn/go-colorable v0.1.4 // indirect github.com/mattn/go-isatty v0.0.10 // indirect + github.com/mitchellh/go-homedir v1.1.0 github.com/spf13/cobra v0.0.5 + github.com/spf13/viper v1.3.2 ) diff --git a/go.sum b/go.sum index 6e27a20..fdf1e0a 100644 --- a/go.sum +++ b/go.sum @@ -9,27 +9,38 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.10 h1:qxFzApOv4WsAL965uUPIsXzAKCZxN2p9UqdhFS4ZW10= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.3.2 h1:VUFqw5KcqRf7i70GOzW7N+Q7+gxVBkSSqiXB12+JQ4M= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -38,6 +49,8 @@ golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnf golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/main.go b/main.go index d2e0856..271c60e 100644 --- a/main.go +++ b/main.go @@ -1,9 +1,22 @@ +/* +Copyright © 2019 Jose Then + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package main -import ( - "github.com/JoseThen/hn/cmd" -) +import "github.com/JoseThen/hnctl/cmd" func main() { - cmd.Execute() + cmd.Execute() } From 74c7d4a6b0e02810807bb0af40d2bad48ae25292 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Wed, 18 Dec 2019 22:47:56 -0500 Subject: [PATCH 23/25] Successful change to cobra architecture --- .gitignore | 2 +- Makefile | 2 +- README.md | 15 ++++++---- cmd/get.go | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++ cmd/root.go | 2 +- go.mod | 6 ++-- go.sum | 3 ++ old-main.go | 49 -------------------------------- 8 files changed, 98 insertions(+), 62 deletions(-) create mode 100644 cmd/get.go delete mode 100644 old-main.go diff --git a/.gitignore b/.gitignore index c386d1b..2e8c7a5 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,4 @@ bin/ hn -realease/ \ No newline at end of file +release/ \ No newline at end of file diff --git a/Makefile b/Makefile index 8d2579d..f149952 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ VERSION ?= 1.0.0 test: - go test ./tests -v + go test ./tests -v build: go build -o release/hn main.go diff --git a/README.md b/README.md index 915e87c..1ef3c93 100644 --- a/README.md +++ b/README.md @@ -13,20 +13,23 @@ A HackerNews client writtent in Go To get the top stories ``` -hn -top +hnctl get --count 4 ``` To get most recent (new) stories ``` -hn -new +hnctl get --new ``` -- The default number of stories for both subcommands is 10. You can change that by using the `-count` flag -- If you do not build the executable then you can simply do `go run main.go -count 30` -- Note that `-top` will be set by default if no flag is set +- The default number of stories for both subcommands is 10. You +can change that by using the `--count` flag +- If you do not build the executable then you can +simply do `go run main.go get--count 30` +- Note that `--top` will be set by default if no flag is set ## Output -When running a command you will get 2 columns for Title and URL in your terminal: +When running a command you will get 2 columns for Title and URL +in your terminal: ![Image of HN GO output](images/output.png) diff --git a/cmd/get.go b/cmd/get.go new file mode 100644 index 0000000..4ddf6c3 --- /dev/null +++ b/cmd/get.go @@ -0,0 +1,81 @@ +/* +Copyright © 2019 NAME HERE + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package cmd + +import ( + "flag" + "fmt" + get "github.com/JoseThen/hn/util" + "os" + "text/tabwriter" + + "github.com/spf13/cobra" +) + +var Count int +var Top bool +var New bool + +type Story struct { + Title string `json:"title"` + URL string `json:"url"` +} + +// getCmd represents the get command +var getCmd = &cobra.Command{ + Use: "get", + Short: "Retrieve a list of HackerNews posts.", + Long: `Retrieve a list of HackerNews posts. + By default getting 10 Top posts.`, + Run: func(cmd *cobra.Command, args []string) { + w := new(tabwriter.Writer) + // minwidth, tabwidth, padding, padchar, flags + w.Init(os.Stdout, 8, 8, 0, '\t', 0) + count, _ := cmd.Flags().GetInt("count") + top, _ := cmd.Flags().GetBool("top") + new, _ := cmd.Flags().GetBool("new") + + flag.Parse() + + switch { + case top: + defer w.Flush() + fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") + fmt.Fprintf(w, "\n %s\t%s\t", "-----", "---") + var topIds = get.Ids(count, "top") + for _, id := range topIds { + var results = get.Data(id) + fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) + } + case new: + defer w.Flush() + fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") + fmt.Fprintf(w, "\n %s\t%s\t", "-----", "---") + var newIds = get.Ids(count, "new") + for _, id := range newIds { + var results = get.Data(id) + fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) + } + } + }, +} + +func init() { + rootCmd.AddCommand(getCmd) + getCmd.Flags().IntVarP(&Count, "count", "c", 10, "Number of posts to get.") + getCmd.Flags().BoolVarP(&Top, "top", "t", true, "Get Top posts.") + getCmd.Flags().BoolVarP(&New, "new", "n", false, "Get New posts.") +} diff --git a/cmd/root.go b/cmd/root.go index cdebd5a..54bfd51 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -46,5 +46,5 @@ func init() { // Cobra also supports local flags, which will only run // when this action is called directly. - rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") + // rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") } diff --git a/go.mod b/go.mod index c446d91..817ca6f 100644 --- a/go.mod +++ b/go.mod @@ -1,12 +1,10 @@ -module github.com/JoseThen/hn +module github.com/JoseThen/hnctl go 1.13 require ( - github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc // indirect + github.com/JoseThen/hn v1.0.0 github.com/fatih/color v1.7.0 - github.com/mattn/go-colorable v0.1.4 // indirect - github.com/mattn/go-isatty v0.0.10 // indirect github.com/mitchellh/go-homedir v1.1.0 github.com/spf13/cobra v0.0.5 github.com/spf13/viper v1.3.2 diff --git a/go.sum b/go.sum index fdf1e0a..e5bcfa0 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,9 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc h1:DsvqWvMHgWCC25WUM0Ry2EaG4jx1m4QubxJnCYodKGI= github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc/go.mod h1:DrU2iAemR02GvIWIcFENlx3OXEvx60t9iCS69SmRBR0= +github.com/JoseThen/hn v1.0.0 h1:ujm6U/GrwGaJe5aUEcCNO4X9dLnTrbNm/Hwbq7o3pyI= +github.com/JoseThen/hn v1.0.0/go.mod h1:pVArzbdvHEgCTciLwHDl5PFlgOW1CyRgNd1nEYVtru4= +github.com/JoseThen/hnctl v1.0.0 h1:GlhytD+jz3Y3VxmgK4VW93Se1dUPKypzxVDmu0w7oxc= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= diff --git a/old-main.go b/old-main.go deleted file mode 100644 index 37fe766..0000000 --- a/old-main.go +++ /dev/null @@ -1,49 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "os" - "text/tabwriter" - - get "github.com/JoseThen/hn/util" -) - -// Story hn Stories -type Story struct { - Title string `json:"title"` - URL string `json:"url"` -} - -func main() { - w := new(tabwriter.Writer) - // minwidth, tabwidth, padding, padchar, flags - w.Init(os.Stdout, 8, 8, 0, '\t', 0) - // SubCommands - topFlag := flag.Bool("top", true, "Display the top HN posts.") - newFlag := flag.Bool("new", true, "Display the newest HN posts.") - countFlag := flag.Int("count", 10, "Number of posts to display.") - - flag.Parse() - - switch { - case *topFlag: - defer w.Flush() - fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") - fmt.Fprintf(w, "\n %s\t%s\t", "-----", "---") - var topIds = get.Ids(*countFlag, "top") - for _, id := range topIds { - var results = get.Data(id) - fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) - } - case *newFlag: - defer w.Flush() - fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") - fmt.Fprintf(w, "\n %s\t%s\t", "-----", "---") - var newIds = get.Ids(*countFlag, "new") - for _, id := range newIds { - var results = get.Data(id) - fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) - } - } -} From 37f73898874e577e72ae809e9148e1df4ac11c54 Mon Sep 17 00:00:00 2001 From: JoseThen Date: Wed, 18 Dec 2019 22:50:56 -0500 Subject: [PATCH 24/25] Fix the order of the new and top flag cases --- cmd/get.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/cmd/get.go b/cmd/get.go index 4ddf6c3..472a050 100644 --- a/cmd/get.go +++ b/cmd/get.go @@ -16,12 +16,12 @@ limitations under the License. package cmd import ( - "flag" "fmt" - get "github.com/JoseThen/hn/util" "os" "text/tabwriter" + get "github.com/JoseThen/hn/util" + "github.com/spf13/cobra" ) @@ -48,24 +48,22 @@ var getCmd = &cobra.Command{ top, _ := cmd.Flags().GetBool("top") new, _ := cmd.Flags().GetBool("new") - flag.Parse() - switch { - case top: + case new: defer w.Flush() fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") fmt.Fprintf(w, "\n %s\t%s\t", "-----", "---") - var topIds = get.Ids(count, "top") - for _, id := range topIds { + var newIds = get.Ids(count, "new") + for _, id := range newIds { var results = get.Data(id) fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) } - case new: + case top: defer w.Flush() fmt.Fprintf(w, "\n %s\t%s\t", "Title", "Url") fmt.Fprintf(w, "\n %s\t%s\t", "-----", "---") - var newIds = get.Ids(count, "new") - for _, id := range newIds { + var topIds = get.Ids(count, "top") + for _, id := range topIds { var results = get.Data(id) fmt.Fprintf(w, "\n %s\t%s\t", results.Title, results.URL) } From 56ac3866c27c446cfad371c0fe3e693a3cbf567d Mon Sep 17 00:00:00 2001 From: JoseThen Date: Thu, 19 Dec 2019 10:27:06 -0500 Subject: [PATCH 25/25] Go Mod Cleanup --- Makefile | 22 +++++++++++----------- cmd/get.go | 2 +- go.mod | 8 +------- go.sum | 14 -------------- tests/get_test.go | 2 +- 5 files changed, 14 insertions(+), 34 deletions(-) diff --git a/Makefile b/Makefile index f149952..8dfb716 100644 --- a/Makefile +++ b/Makefile @@ -6,29 +6,29 @@ test: go test ./tests -v build: - go build -o release/hn main.go + go build -o release/hnctl main.go run: go run main.go build-darwin: echo "Compiling for Darwin" - GOOS=darwin GOARCH=386 go build -o release/hn-v${VERSION}-darwin-386 main.go - GOOS=darwin GOARCH=amd64 go build -o release/hn-v${VERSION}-darwin-amd64 main.go - # GOOS=darwin GOARCH=arm go build -v -o release/hn-v${VERSION}-darwin-arm main.go - # GOOS=darwin GOARCH=arm64 go build -o release/hn-v${VERSION}-darwin-arm64 main.go + GOOS=darwin GOARCH=386 go build -o release/hnctl-v${VERSION}-darwin-386 main.go + GOOS=darwin GOARCH=amd64 go build -o release/hnctl-v${VERSION}-darwin-amd64 main.go + # GOOS=darwin GOARCH=arm go build -v -o release/hnctl-v${VERSION}-darwin-arm main.go + # GOOS=darwin GOARCH=arm64 go build -o release/hnctl-v${VERSION}-darwin-arm64 main.go build-windows: echo "Compiling for Windows" - GOOS=windows GOARCH=amd64 go build -o release/hn-v${VERSION}-windows-amd64 main.go - GOOS=windows GOARCH=386 go build -o release/hn-v${VERSION}-windows-386 main.go + GOOS=windows GOARCH=amd64 go build -o release/hnctl-v${VERSION}-windows-amd64 main.go + GOOS=windows GOARCH=386 go build -o release/hnctl-v${VERSION}-windows-386 main.go build-linux: echo "Compiling for every OS and Platform" - GOOS=linux GOARCH=arm go build -o release/hn-v${VERSION}-linux-arm main.go - GOOS=linux GOARCH=arm64 go build -o release/hn-v${VERSION}-linux-arm64 main.go - GOOS=linux GOARCH=386 go build -o release/hn-v${VERSION}-linux-386 main.go - GOOS=linux GOARCH=amd64 go build -o release/hn-v${VERSION}-linux-amd64 main.go + GOOS=linux GOARCH=arm go build -o release/hnctl-v${VERSION}-linux-arm main.go + GOOS=linux GOARCH=arm64 go build -o release/hnctl-v${VERSION}-linux-arm64 main.go + GOOS=linux GOARCH=386 go build -o release/hnctl-v${VERSION}-linux-386 main.go + GOOS=linux GOARCH=amd64 go build -o release/hnctl-v${VERSION}-linux-amd64 main.go compile: build-darwin build-windows build-linux diff --git a/cmd/get.go b/cmd/get.go index 472a050..2871a0e 100644 --- a/cmd/get.go +++ b/cmd/get.go @@ -20,7 +20,7 @@ import ( "os" "text/tabwriter" - get "github.com/JoseThen/hn/util" + get "github.com/JoseThen/hnctl/util" "github.com/spf13/cobra" ) diff --git a/go.mod b/go.mod index 817ca6f..94e2f25 100644 --- a/go.mod +++ b/go.mod @@ -2,10 +2,4 @@ module github.com/JoseThen/hnctl go 1.13 -require ( - github.com/JoseThen/hn v1.0.0 - github.com/fatih/color v1.7.0 - github.com/mitchellh/go-homedir v1.1.0 - github.com/spf13/cobra v0.0.5 - github.com/spf13/viper v1.3.2 -) +require github.com/spf13/cobra v0.0.5 diff --git a/go.sum b/go.sum index e5bcfa0..4bf3bab 100644 --- a/go.sum +++ b/go.sum @@ -1,17 +1,10 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc h1:DsvqWvMHgWCC25WUM0Ry2EaG4jx1m4QubxJnCYodKGI= -github.com/JoseThen/HN-GO v0.0.0-20191206142841-999234d74efc/go.mod h1:DrU2iAemR02GvIWIcFENlx3OXEvx60t9iCS69SmRBR0= -github.com/JoseThen/hn v1.0.0 h1:ujm6U/GrwGaJe5aUEcCNO4X9dLnTrbNm/Hwbq7o3pyI= -github.com/JoseThen/hn v1.0.0/go.mod h1:pVArzbdvHEgCTciLwHDl5PFlgOW1CyRgNd1nEYVtru4= -github.com/JoseThen/hnctl v1.0.0 h1:GlhytD+jz3Y3VxmgK4VW93Se1dUPKypzxVDmu0w7oxc= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -20,11 +13,6 @@ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NH github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.10 h1:qxFzApOv4WsAL965uUPIsXzAKCZxN2p9UqdhFS4ZW10= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= @@ -50,8 +38,6 @@ github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljT github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/tests/get_test.go b/tests/get_test.go index 34f9133..422de27 100644 --- a/tests/get_test.go +++ b/tests/get_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - get "github.com/JoseThen/hn/util" + get "github.com/JoseThen/hnctl/util" ) const testNum = 81