This commit is contained in:
Christian Nieves
2023-07-03 18:23:23 -05:00
parent 8efe9263b1
commit 574a07495f
12 changed files with 148 additions and 40 deletions

23
BUILD
View File

@ -1,13 +1,20 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
package(
default_visibility = ["//visibility:public"],
)
go_binary(
name = "hello",
srcs = ["hello.go"],
deps = [
"//cmd",
]
load("@bazel_gazelle//:def.bzl", "gazelle")
# gazelle:prefix github.com/squk/lotr
# gazelle:build_file_name BUILD
gazelle(name = "gazelle")
gazelle(
name = "gazelle-update-repos",
args = [
"-from_file=go.mod",
"-to_macro=deps.bzl%go_dependencies",
"-prune",
"-build_file_proto_mode=disable_global",
],
command = "update-repos",
)

View File

@ -1,23 +1,47 @@
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# git_repository(
# name = "io_bazel_rules_go",
# remote = "https://github.com/bazelbuild/rules_go.git",
# branch = "master",
# )
http_archive(
name = "io_bazel_rules_go",
sha256 = "6b65cb7917b4d1709f9410ffe00ecf3e160edf674b78c54a894471320862184f",
sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.0/rules_go-v0.39.0.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.39.0/rules_go-v0.39.0.zip",
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
],
)
http_archive(
name = "bazel_gazelle",
sha256 = "727f3e4edd96ea20c29e8c2ca9e8d2af724d8c7778e7923a854b2c80952bc405",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.30.0/bazel-gazelle-v0.30.0.tar.gz",
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.30.0/bazel-gazelle-v0.30.0.tar.gz",
],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
############################################################
# Define your own dependencies here using go_repository.
# Else, dependencies declared by rules_go/gazelle will be used.
# The first declaration of an external repository "wins".
############################################################
go_repository(
name = "com_github_davecgh_go_spew",
build_file_proto_mode = "disable_global",
importpath = "github.com/davecgh/go-spew",
sum = "h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=",
version = "v1.1.1",
)
load("//:deps.bzl", "go_dependencies")
# gazelle:repository_macro deps.bzl%go_dependencies
go_dependencies()
go_rules_dependencies()
go_register_toolchains(version = "1.19.3")
go_register_toolchains(version = "1.20.4")
gazelle_dependencies()

View File

@ -1,9 +0,0 @@
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World. Cmd")
}

2
deps.bzl Normal file
View File

@ -0,0 +1,2 @@
def go_dependencies():
pass

3
extract/BUILD Normal file
View File

@ -0,0 +1,3 @@
package(
default_visibility = ["//visibility:public"],
)

18
extract/cmd/BUILD Normal file
View File

@ -0,0 +1,18 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
go_library(
name = "cmd_lib",
srcs = ["main.go"],
importpath = "github.com/squk/lotr/extract/cmd",
visibility = ["//visibility:private"],
deps = [
"//extract/types",
"@com_github_davecgh_go_spew//spew",
],
)
go_binary(
name = "cmd",
embed = [":cmd_lib"],
visibility = ["//visibility:public"],
)

30
extract/cmd/main.go Normal file
View File

@ -0,0 +1,30 @@
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
"github.com/squk/lotr/extract/types"
"github.com/davecgh/go-spew/spew"
)
func main() {
fmt.Println("LOTR CARD PARSE")
// Open our jsonFile
jsonFile, err := os.Open("users.json")
// if we os.Open returns an error then handle it
if err != nil {
fmt.Println(err)
}
fmt.Println("Successfully Opened users.json")
// defer the closing of our jsonFile so that we can parse it later on
defer jsonFile.Close()
byteValue, _ := ioutil.ReadAll(jsonFile)
c := []types.Card{}
json.Unmarshal(byteValue, &c)
spew.Dump(c)
}

View File

@ -1,8 +1,8 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name ="cmd",
srcs = [ "cmd.go" ],
name = "types",
srcs = ["card.go"],
importpath = "github.com/squk/lotr/extract/types",
visibility = ["//visibility:public"],
importpath= "github.com/squk/lotr/cmd"
)

35
extract/types/card.go Normal file
View File

@ -0,0 +1,35 @@
package extract
type Card struct {
PackCode string `json:"pack_code"`
PackName string `json:"pack_name"`
IsOfficial bool `json:"is_official"`
TypeCode string `json:"type_code"`
TypeName string `json:"type_name"`
SphereCode string `json:"sphere_code"`
SphereName string `json:"sphere_name"`
Position int `json:"position"`
Code string `json:"code"`
Name string `json:"name"`
Traits string `json:"traits"`
Text string `json:"text"`
Flavor string `json:"flavor"`
IsUnique bool `json:"is_unique"`
Threat int `json:"threat"`
Willpower int `json:"willpower"`
Attack int `json:"attack"`
Defense int `json:"defense"`
Health int `json:"health"`
Quantity int `json:"quantity"`
DeckLimit int `json:"deck_limit"`
Illustrator string `json:"illustrator"`
Octgnid string `json:"octgnid"`
HasErrata bool `json:"has_errata"`
URL string `json:"url"`
Imagesrc string `json:"imagesrc"`
Versions []struct {
SetName string `json:"set_name"`
Year string `json:"year"`
URL string `json:"url"`
} `json:"versions"`
}

5
go.mod Normal file
View File

@ -0,0 +1,5 @@
module github.com/squk/lotr
go 1.19
require github.com/davecgh/go-spew v1.1.1

2
go.sum Normal file
View File

@ -0,0 +1,2 @@
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

View File

@ -1,9 +0,0 @@
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World")
}