Better program/library structure

This commit is contained in:
Melon 2020-11-22 23:22:38 +00:00
parent c6eacd5035
commit 6a804b5efe
5 changed files with 48 additions and 42 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
mclookup
go-mclookup

3
build
View File

@ -1,3 +0,0 @@
#!/bin/bash
go build -o mclookup
sudo cp ./mclookup /usr/bin/mclookup

43
cmd/mclookup/cli.go Normal file
View File

@ -0,0 +1,43 @@
package main
import (
"bufio"
"fmt"
"os"
mclookup "codehub.onpointcoding.net/sean/go-mclookup"
)
func main() {
fmt.Printf("Minecraft Username Lookup -- by MrMelon\n")
if len(os.Args) > 1 {
for i := 1; i < len(os.Args); i++ {
fmt.Printf("Find: " + os.Args[i])
result, err := mclookup.LookupPlayer(os.Args[i])
if err != nil {
fmt.Printf("\rFail: %s\n", os.Args[i])
fmt.Fprintln(os.Stderr, "Internal error:", err)
continue
}
fmt.Printf("\rDone: %s -- %s\n", result.Data.Player.ID, result.Data.Player.Username)
}
}
fi, _ := os.Stdin.Stat()
if (fi.Mode() & os.ModeCharDevice) == 0 {
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
fmt.Printf("Find: " + scanner.Text())
result, err := mclookup.LookupPlayer(scanner.Text())
if err != nil {
fmt.Printf("\rFail: %s\n", scanner.Text())
fmt.Fprintln(os.Stderr, "Internal error:", err)
continue
}
fmt.Printf("\rDone: %s -- %s\n", result.Data.Player.ID, result.Data.Player.Username)
}
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, "Failed to read pipe:", err)
}
}
}

3
install Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
go build -o go-mclookup ./cmd/mclookup
sudo cp ./go-mclookup /usr/bin/mclookup

View File

@ -1,49 +1,12 @@
package main
package mclookup
import (
"bufio"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"os"
"time"
)
func main() {
fmt.Printf("Minecraft Username Lookup -- by MrMelon\n")
if len(os.Args) > 1 {
for i := 1; i < len(os.Args); i++ {
fmt.Printf("Find: " + os.Args[i])
result, err := LookupPlayer(os.Args[i])
if err != nil {
fmt.Printf("\rFail: %s\n", os.Args[i])
fmt.Fprintln(os.Stderr, "Internal error:", err)
continue
}
fmt.Printf("\rDone: %s -- %s\n", result.Data.Player.ID, result.Data.Player.Username)
}
}
fi, _ := os.Stdin.Stat()
if (fi.Mode() & os.ModeCharDevice) == 0 {
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
fmt.Printf("Find: " + scanner.Text())
result, err := LookupPlayer(scanner.Text())
if err != nil {
fmt.Printf("\rFail: %s\n", scanner.Text())
fmt.Fprintln(os.Stderr, "Internal error:", err)
continue
}
fmt.Printf("\rDone: %s -- %s\n", result.Data.Player.ID, result.Data.Player.Username)
}
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, "Failed to read pipe:", err)
}
}
}
// APIResponse is used to parse the data from the api.
type APIResponse struct {
Data struct {