Day 1. pull these out from protobuf libraries
This commit is contained in:
commit
9d95b18913
|
@ -0,0 +1,11 @@
|
|||
*.swp
|
||||
go.mod
|
||||
go.sum
|
||||
/files/*
|
||||
/work/*
|
||||
|
||||
forgeConfig/forgeConfig
|
||||
scanGoSrc/scanGoSrc
|
||||
validate/validate
|
||||
virtbuf-example/virtbuf-example
|
||||
zoopb-example/zoopb-example
|
|
@ -0,0 +1,6 @@
|
|||
all:
|
||||
make -C forgeConfig
|
||||
make -C scanGoSrc
|
||||
make -C validate
|
||||
make -C virtbuf-example
|
||||
make -C zoopb-example
|
|
@ -0,0 +1,48 @@
|
|||
VERSION = $(shell git describe --tags)
|
||||
BUILDTIME = $(shell date +%Y.%m.%d)
|
||||
|
||||
build:
|
||||
GO111MODULE=off go build \
|
||||
-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
|
||||
|
||||
test2:
|
||||
./forgeConfig
|
||||
FORGE_HOME=/tmp/forge ./forgeConfig
|
||||
FORGE_HOME=/tmp/forge ./forgeConfig --list
|
||||
|
||||
install:
|
||||
GO111MODULE=off go install \
|
||||
-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
|
||||
|
||||
test:
|
||||
./forgeConfig --list
|
||||
./forgeConfig --add --gopath 'go.wit.com/apps/foo'
|
||||
./forgeConfig --add --gopath 'go.wit.com/apps/foowrite' --writable
|
||||
./forgeConfig --add --gopath 'gitea.wit.com' --directory
|
||||
./forgeConfig --add --gopath 'git.wit.org' --directory
|
||||
./forgeConfig --delete --gopath 'go.wit.com/apps/helloworld'
|
||||
./forgeConfig --list
|
||||
|
||||
list:
|
||||
./forgeConfig --list
|
||||
|
||||
add:
|
||||
./forgeConfig --add --name 'foo' --gopath 'go.wit.com/apps/foo'
|
||||
|
||||
update:
|
||||
./forgeConfig --update --name 'foo' --gopath 'more stuff but not memory corruption?'
|
||||
|
||||
corruptMemory:
|
||||
./forgeConfig --update --name 'foo' --gopath 'blah'
|
||||
|
||||
goimports:
|
||||
goimports -w *.go
|
||||
|
||||
prep:
|
||||
go get -v -t -u
|
||||
|
||||
run:
|
||||
go run *.go
|
||||
|
||||
clean:
|
||||
-rm -f forgeConfig
|
|
@ -0,0 +1,50 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"go.wit.com/dev/alexflint/arg"
|
||||
)
|
||||
|
||||
var argv args
|
||||
|
||||
type args struct {
|
||||
ConfigDir string `arg:"env:FORGE_HOME" help:"defaults to ~/.config/forge/"`
|
||||
List bool `arg:"--list" default:"false" help:"list repos in your config"`
|
||||
Add bool `arg:"--add" default:"false" help:"add a new repo"`
|
||||
Delete bool `arg:"--delete" default:"false" help:"delete a repo"`
|
||||
Update bool `arg:"--update" default:"false" help:"update a repo"`
|
||||
GoPath string `arg:"--gopath" help:"gopath of the repo"`
|
||||
Directory bool `arg:"--directory" default:"false" help:"repo is a directory to match against"`
|
||||
ReadOnly bool `arg:"--readonly" default:"false" help:"repo is readonly"`
|
||||
Writable bool `arg:"--writable" default:"false" help:"repo is writable"`
|
||||
Favorite bool `arg:"--favorite" default:"false" help:"forge will always go-clone or git clone this"`
|
||||
Private bool `arg:"--private" default:"false" help:"repo can not be published"`
|
||||
Interesting bool `arg:"--interesting" default:"false" help:"something you decided was cool"`
|
||||
}
|
||||
|
||||
func (a args) Description() string {
|
||||
return `
|
||||
forgeConfig -- add entries to your config files
|
||||
|
||||
This is just example protobuf code to test forgepb is working
|
||||
but it could be used to automagically create a config file too.
|
||||
|
||||
If you need to change your config file, just edit the forge.text or forge.json
|
||||
files then remove the forge.pb and ConfigLoad() will attempt to load those files instead
|
||||
`
|
||||
}
|
||||
|
||||
func (args) Version() string {
|
||||
return "virtigo " + VERSION
|
||||
}
|
||||
|
||||
func init() {
|
||||
var pp *arg.Parser
|
||||
pp = arg.MustParse(&argv)
|
||||
|
||||
if pp == nil {
|
||||
pp.WriteHelp(os.Stdout)
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,133 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"go.wit.com/lib/protobuf/forgepb"
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
// sent via ldflags
|
||||
var VERSION string
|
||||
|
||||
func main() {
|
||||
f := forgepb.Init()
|
||||
|
||||
if argv.List {
|
||||
f.ConfigPrintTable()
|
||||
loop := f.Config.SortByGoPath() // get the list of forge configs
|
||||
for loop.Scan() {
|
||||
r := loop.Next()
|
||||
log.Info("repo:", r.GoPath)
|
||||
}
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
// try to delete, then save config and exit
|
||||
if argv.Delete {
|
||||
if f.Config.DeleteByGoPath(argv.GoPath) {
|
||||
log.Info("deleted", argv.GoPath, "did not exist. did nothing")
|
||||
os.Exit(0)
|
||||
}
|
||||
log.Info("deleted", argv.GoPath, "ok")
|
||||
f.ConfigSave()
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
// try to update, then save config and exit
|
||||
if argv.Update {
|
||||
/*
|
||||
if f.UpdateGoPath(argv.Name, argv.GoPath) {
|
||||
// save updated config file
|
||||
repos.ConfigSave()
|
||||
}
|
||||
*/
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
// try to add, then save config and exit
|
||||
if argv.Add {
|
||||
log.Info("going to add a new repo", argv.GoPath)
|
||||
new1 := forgepb.ForgeConfig{
|
||||
GoPath: argv.GoPath,
|
||||
Writable: argv.Writable,
|
||||
ReadOnly: argv.ReadOnly,
|
||||
Private: argv.Private,
|
||||
Directory: argv.Directory,
|
||||
Favorite: argv.Favorite,
|
||||
Interesting: argv.Interesting,
|
||||
}
|
||||
|
||||
if f.Config.Append(&new1) {
|
||||
log.Info("added", new1.GoPath, "ok")
|
||||
} else {
|
||||
log.Info("added", new1.GoPath, "failed")
|
||||
os.Exit(-1)
|
||||
}
|
||||
f.ConfigSave()
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
// testMemoryCorruption(f)
|
||||
f.ConfigSave()
|
||||
}
|
||||
|
||||
/*
|
||||
// this fucks shit up
|
||||
func testMemoryCorruption(all *forgepb.Repos) *forgepb.Repos {
|
||||
new1 := new(forgepb.Repo)
|
||||
new1.Name = "bash1"
|
||||
new1.Version = "5.2.21"
|
||||
if all.Append(new1) {
|
||||
log.Info("added", new1.Name, "ok")
|
||||
} else {
|
||||
log.Info("added", new1.Name, "failed")
|
||||
}
|
||||
|
||||
new1 = new(forgepb.Repo)
|
||||
new1.Name = "zookeeper1"
|
||||
new1.Debname = "zookeeper-go"
|
||||
if all.Append(new1) {
|
||||
log.Info("added", new1.Name, "ok")
|
||||
} else {
|
||||
log.Info("added", new1.Name, "failed")
|
||||
}
|
||||
|
||||
new1 = new(forgepb.Repo)
|
||||
new1.Name = "wit-package"
|
||||
new1.Private = true
|
||||
if all.Append(new1) {
|
||||
log.Info("added", new1.Name, "ok")
|
||||
} else {
|
||||
log.Info("added", new1.Name, "failed")
|
||||
}
|
||||
|
||||
new1 = new(forgepb.Repo)
|
||||
new1.Name = "networkQuality"
|
||||
new1.Debname = "networkquality"
|
||||
new1.Readonly = true
|
||||
if all.Append(new1) {
|
||||
log.Info("added", new1.Name, "ok")
|
||||
} else {
|
||||
log.Info("added", new1.Name, "failed")
|
||||
}
|
||||
|
||||
new2 := new(forgepb.Repo)
|
||||
new2.Name = "go-clone"
|
||||
new2.Version = "0.6.8" // good version of the macos
|
||||
if all.Append(new2) {
|
||||
log.Info("added", new2.Name, "ok")
|
||||
} else {
|
||||
log.Info("added", new2.Name, "failed")
|
||||
}
|
||||
|
||||
if all.Append(new2) {
|
||||
log.Info("added", new2.Name, "ok (this is bad)")
|
||||
} else {
|
||||
log.Info("added", new2.Name, "failed (but ok)")
|
||||
}
|
||||
|
||||
fmt.Println("packages are:", len(all.Repos))
|
||||
return all
|
||||
}
|
||||
*/
|
|
@ -0,0 +1,25 @@
|
|||
VERSION = $(shell git describe --tags)
|
||||
BUILDTIME = $(shell date +%Y.%m.%d)
|
||||
|
||||
build:
|
||||
GO111MODULE=off go build \
|
||||
-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
|
||||
|
||||
test:
|
||||
FORGE_HOME=/tmp/forge ./scanGoSrc
|
||||
|
||||
install:
|
||||
GO111MODULE=off go install \
|
||||
-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
|
||||
|
||||
goimports:
|
||||
goimports -w *.go
|
||||
|
||||
prep:
|
||||
go get -v -t -u
|
||||
|
||||
run:
|
||||
go run *.go
|
||||
|
||||
clean:
|
||||
-rm -f scanGoSrc
|
|
@ -0,0 +1,50 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"go.wit.com/dev/alexflint/arg"
|
||||
)
|
||||
|
||||
var argv args
|
||||
|
||||
type args struct {
|
||||
ConfigDir string `arg:"env:FORGE_HOME" help:"defaults to ~/.config/forge/"`
|
||||
List bool `arg:"--list" default:"false" help:"list repos in your config"`
|
||||
Add bool `arg:"--add" default:"false" help:"add a new repo"`
|
||||
Delete bool `arg:"--delete" default:"false" help:"delete a repo"`
|
||||
Update bool `arg:"--update" default:"false" help:"update a repo"`
|
||||
GoPath string `arg:"--gopath" help:"gopath of the repo"`
|
||||
Directory bool `arg:"--directory" default:"false" help:"repo is a directory to match against"`
|
||||
ReadOnly bool `arg:"--readonly" default:"false" help:"repo is readonly"`
|
||||
Writable bool `arg:"--writable" default:"false" help:"repo is writable"`
|
||||
Favorite bool `arg:"--favorite" default:"false" help:"forge will always go-clone or git clone this"`
|
||||
Private bool `arg:"--private" default:"false" help:"repo can not be published"`
|
||||
Interesting bool `arg:"--interesting" default:"false" help:"something you decided was cool"`
|
||||
}
|
||||
|
||||
func (a args) Description() string {
|
||||
return `
|
||||
forgeConfig -- add entries to your config files
|
||||
|
||||
This is just example protobuf code to test forgepb is working
|
||||
but it could be used to automagically create a config file too.
|
||||
|
||||
If you need to change your config file, just edit the forge.text or forge.json
|
||||
files then remove the forge.pb and ConfigLoad() will attempt to load those files instead
|
||||
`
|
||||
}
|
||||
|
||||
func (args) Version() string {
|
||||
return "virtigo " + VERSION
|
||||
}
|
||||
|
||||
func init() {
|
||||
var pp *arg.Parser
|
||||
pp = arg.MustParse(&argv)
|
||||
|
||||
if pp == nil {
|
||||
pp.WriteHelp(os.Stdout)
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"go.wit.com/lib/protobuf/gitpb"
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
// sent via ldflags
|
||||
var VERSION string
|
||||
|
||||
func main() {
|
||||
var repos *gitpb.Repos
|
||||
repos = new(gitpb.Repos)
|
||||
|
||||
newr, err := repos.NewGoPath("/home/jcarr/go/src", "go.wit.com/apps/wit-package")
|
||||
if err != nil {
|
||||
log.Info("init failed", err)
|
||||
panic("crapnuts")
|
||||
} else {
|
||||
log.Info("init worked for", newr.GoPath)
|
||||
}
|
||||
|
||||
newr, err = repos.NewGoPath("/home/jcarr/go/src", "go.wit.com/apps/notathing")
|
||||
if err != nil {
|
||||
log.Info("init failed correctly:", err)
|
||||
} else {
|
||||
log.Info("init should have failed for", newr.GoPath)
|
||||
panic("crapnuts")
|
||||
}
|
||||
|
||||
/*
|
||||
log.Info(forgepb.RepoHeader())
|
||||
loop := repos.SortByPath() // get the list of repos
|
||||
for loop.Scan() {
|
||||
r := loop.Repo()
|
||||
log.Info("repo:", r.GoPath)
|
||||
}
|
||||
*/
|
||||
/*
|
||||
log.Info("going to add a new repo", argv.GoPath)
|
||||
new1 := forgepb.Repo{
|
||||
GoPath: argv.GoPath,
|
||||
Writable: argv.Writable,
|
||||
ReadOnly: argv.ReadOnly,
|
||||
Private: argv.Private,
|
||||
Directory: argv.Directory,
|
||||
Favorite: argv.Favorite,
|
||||
Interesting: argv.Interesting,
|
||||
}
|
||||
*/
|
||||
os.Exit(0)
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
VERSION = $(shell git describe --tags)
|
||||
BUILDTIME = $(shell date +%Y.%m.%d)
|
||||
|
||||
build:
|
||||
GO111MODULE=off go build \
|
||||
-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
|
||||
|
||||
test:
|
||||
./validate --repo go.wit.com/apps/wit-package
|
||||
|
||||
goimports:
|
||||
goimports -w *.go
|
||||
|
||||
prep:
|
||||
go get -v -t -u
|
||||
|
||||
run:
|
||||
go run *.go
|
||||
|
||||
clean:
|
||||
-rm -f scanGoSrc
|
|
@ -0,0 +1,42 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"go.wit.com/dev/alexflint/arg"
|
||||
)
|
||||
|
||||
var argv args
|
||||
|
||||
type args struct {
|
||||
Repo string `arg:"--repo" help:"repo to check"`
|
||||
List bool `arg:"--list" default:"false" help:"list repos in your config"`
|
||||
SaveConfig bool `arg:"--save" default:"false" help:"save your config file at the end"`
|
||||
Interesting bool `arg:"--interesting" default:"false" help:"something you decided was cool"`
|
||||
}
|
||||
|
||||
func (a args) Description() string {
|
||||
return `
|
||||
forgeConfig -- add entries to your config files
|
||||
|
||||
This is just example protobuf code to test forgepb is working
|
||||
but it could be used to automagically create a config file too.
|
||||
|
||||
If you need to change your config file, just edit the forge.text or forge.json
|
||||
files then remove the forge.pb and ConfigLoad() will attempt to load those files instead
|
||||
`
|
||||
}
|
||||
|
||||
func (args) Version() string {
|
||||
return "virtigo " + VERSION
|
||||
}
|
||||
|
||||
func init() {
|
||||
var pp *arg.Parser
|
||||
pp = arg.MustParse(&argv)
|
||||
|
||||
if pp == nil {
|
||||
pp.WriteHelp(os.Stdout)
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"go.wit.com/dev/alexflint/arg"
|
||||
"go.wit.com/gui"
|
||||
"go.wit.com/lib/gui/repolist"
|
||||
"go.wit.com/lib/protobuf/forgepb"
|
||||
"go.wit.com/lib/protobuf/gitpb"
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
// sent via ldflags
|
||||
var VERSION string
|
||||
|
||||
var pp *arg.Parser
|
||||
var forge *forgepb.Forge
|
||||
var myGui *gui.Node
|
||||
var rv *repolist.RepoList
|
||||
var argvRepo *gitpb.Repo
|
||||
|
||||
func main() {
|
||||
pp = arg.MustParse(&argv)
|
||||
|
||||
// load the ~/.config/forge/ config
|
||||
forge = forgepb.Init()
|
||||
// forge.ConfigPrintTable()
|
||||
os.Setenv("REPO_WORK_PATH", forge.GetGoSrc())
|
||||
|
||||
myGui = gui.New()
|
||||
myGui.Default()
|
||||
|
||||
repos := forge.Repos.SortByGoPath()
|
||||
for repos.Scan() {
|
||||
repo := repos.Next()
|
||||
if ! repo.IsValid() {
|
||||
continue
|
||||
}
|
||||
// forge.VerifyBranchNames(repo)
|
||||
fullpath := repo.GetFullPath()
|
||||
mName := repo.GetMasterBranchName()
|
||||
dName := repo.GetDevelBranchName()
|
||||
uName := repo.GetUserBranchName()
|
||||
dlen := repo.GoDepsLen()
|
||||
plen := repo.PublishedLen()
|
||||
var ds, ps string
|
||||
if dlen == 0 {
|
||||
ds = " "
|
||||
} else {
|
||||
ds = fmt.Sprintf("%2d", dlen)
|
||||
}
|
||||
if plen == 0 {
|
||||
ps = " "
|
||||
} else {
|
||||
ps = fmt.Sprintf("%2d", plen)
|
||||
}
|
||||
log.Printf("repo: %-60s %-10s %-8s %-8s %s %s %s\n", fullpath, mName, dName, uName, ds, ps, repo.RepoType())
|
||||
/*
|
||||
if repo.GoDepsChanged() {
|
||||
log.Printf("\tdependancy checks indicate a new release is needed for %s\n", repo.GetGoPath())
|
||||
} else {
|
||||
log.Printf("\tdependancies have not changed for %s\n", repo.GetGoPath())
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
if argv.Repo == "" {
|
||||
log.Info("no --repo")
|
||||
os.Exit(-1)
|
||||
}
|
||||
|
||||
check := forge.Repos.FindByGoPath(argv.Repo)
|
||||
if check == nil {
|
||||
log.Info("boo, you didn't git check", argv.Repo)
|
||||
os.Exit(-1)
|
||||
}
|
||||
check.RedoGoMod()
|
||||
|
||||
match, err := forge.Repos.GoDepsChanged(check)
|
||||
if err != nil {
|
||||
log.Info("dependancy checks failed", check.GetGoPath(), err)
|
||||
os.Exit(-1)
|
||||
}
|
||||
if match {
|
||||
log.Printf("dependancy checks indicate a new release is needed for %s\n", check.GetGoPath())
|
||||
} else {
|
||||
log.Printf("dependancies have not changed for %s\n", check.GetGoPath())
|
||||
}
|
||||
|
||||
if argv.SaveConfig {
|
||||
forge.Repos.ConfigSave()
|
||||
}
|
||||
|
||||
os.Exit(0)
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
build:
|
||||
GO111MODULE=off go build
|
||||
|
||||
test:
|
||||
./virtbuf-example
|
||||
|
||||
goimports:
|
||||
goimports -w *.go
|
||||
|
||||
prep:
|
||||
go get -v -t -u
|
||||
|
||||
run:
|
||||
go run *.go
|
||||
|
||||
clean:
|
||||
-rm -f virtbuf-example
|
|
@ -0,0 +1,91 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
pb "go.wit.com/lib/protobuf/virtbuf"
|
||||
)
|
||||
|
||||
//
|
||||
// saves entries in a config file
|
||||
//
|
||||
|
||||
func main() {
|
||||
TestWriteCluster()
|
||||
|
||||
var c *pb.Cluster
|
||||
c = pb.InitCluster()
|
||||
|
||||
// log.Println(aCluster.String())
|
||||
// show the droplets to STDOUT
|
||||
loop := c.DropletsAll() // get the list of droplets
|
||||
for loop.Scan() {
|
||||
d := loop.Next()
|
||||
fmt.Println("\tdroplet =", d.Hostname, "preffered host:", d.PreferredHypervisor)
|
||||
}
|
||||
|
||||
/*
|
||||
// show the hypervisors to STDOUT
|
||||
for _, h := range aCluster.Hypervisors {
|
||||
fmt.Println("\thypervisor =", h.Hostname, h.GetMemoryPrintable())
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
json := aCluster.FormatJSON()
|
||||
fmt.Println(json)
|
||||
|
||||
data, _ := aCluster.MarshalJSON()
|
||||
fmt.Println(string(data))
|
||||
|
||||
text := aCluster.FormatTEXT()
|
||||
fmt.Println(text)
|
||||
*/
|
||||
}
|
||||
|
||||
/*
|
||||
func marshalWriteToFile(myWriter *bufio.Writer, c *pb.Cluster) {
|
||||
buf, err := proto.Marshal(c)
|
||||
if err != nil {
|
||||
log.Fatal("marshaling error: ", err)
|
||||
}
|
||||
tmp, err := myWriter.Write(buf)
|
||||
myWriter.Flush()
|
||||
log.Println("bufio.Write() tmp, err = ", tmp, err)
|
||||
|
||||
buf, err = proto.Marshal(c)
|
||||
tmp2, err := myWriter.Write(buf)
|
||||
myWriter.Flush()
|
||||
log.Println("bufio.Write() tmp2, err = ", tmp2, err)
|
||||
}
|
||||
*/
|
||||
|
||||
func TestWriteCluster() {
|
||||
c := pb.CreateSampleCluster(7)
|
||||
os.Setenv("VIRTIGO_HOME", "/tmp/virtigo/")
|
||||
|
||||
if err := c.ConfigSave(); err != nil {
|
||||
fmt.Println("configsave error", err)
|
||||
os.Exit(-1)
|
||||
}
|
||||
// marshalUnmarshal()
|
||||
}
|
||||
|
||||
/*
|
||||
func marshalUnmarshal() {
|
||||
test := pb.CreateSampleCluster(7)
|
||||
data, err := proto.Marshal(test)
|
||||
if err != nil {
|
||||
log.Fatal("marshaling error: ", err)
|
||||
}
|
||||
|
||||
newTest := &pb.Cluster{}
|
||||
err = proto.Unmarshal(data, newTest)
|
||||
if err != nil {
|
||||
log.Fatal("unmarshaling error: ", err)
|
||||
} else {
|
||||
log.Println("proto.Marshal() and proto.Unmarshal() worked")
|
||||
}
|
||||
}
|
||||
*/
|
|
@ -0,0 +1,17 @@
|
|||
build:
|
||||
GO111MODULE=off go build
|
||||
|
||||
test:
|
||||
./zoopb-example
|
||||
|
||||
goimports:
|
||||
goimports -w *.go
|
||||
|
||||
prep:
|
||||
go get -v -t -u
|
||||
|
||||
run:
|
||||
go run *.go
|
||||
|
||||
clean:
|
||||
-rm -f zoopb-example
|
|
@ -0,0 +1,71 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"go.wit.com/lib/protobuf/zoopb"
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
m := testMachine()
|
||||
testPackages(m)
|
||||
|
||||
loop := m.Packages.SortByName()
|
||||
for loop.Scan() {
|
||||
p := loop.Next()
|
||||
log.Info("installed package:", p.Name, p.Version, p.PkgName)
|
||||
}
|
||||
|
||||
if m.IsInstalled("bash") {
|
||||
log.Info("bash installed check worked")
|
||||
} else {
|
||||
log.Info("bash installed check failed")
|
||||
panic("bash")
|
||||
}
|
||||
|
||||
if m.IsInstalled("foo") {
|
||||
log.Info("foo not-installed check failed")
|
||||
panic("foo")
|
||||
} else {
|
||||
log.Info("foo not-installed check worked")
|
||||
}
|
||||
}
|
||||
|
||||
func testMachine() *zoopb.Machine {
|
||||
var m *zoopb.Machine
|
||||
m = new(zoopb.Machine)
|
||||
m.Hostname = "zookeeper"
|
||||
return m
|
||||
}
|
||||
|
||||
func testPackages(m *zoopb.Machine) {
|
||||
m.Packages = new(zoopb.Packages)
|
||||
// r = zoopb.LoadJSON("go.wit.com/lib/protobuf/zoopb")
|
||||
|
||||
new1 := new(zoopb.Package)
|
||||
new1.Name = "bash"
|
||||
new1.Version = "5.2.21"
|
||||
if m.Packages.Append(new1) {
|
||||
log.Info("added", new1.Name, "ok")
|
||||
} else {
|
||||
log.Info("added", new1.Name, "failed")
|
||||
}
|
||||
|
||||
new2 := new(zoopb.Package)
|
||||
new2.Name = "go-clone"
|
||||
new2.Version = "0.6.8" // good version of the macos
|
||||
if m.Packages.Append(new2) {
|
||||
log.Info("added", new2.Name, "ok")
|
||||
} else {
|
||||
log.Info("added", new2.Name, "failed")
|
||||
}
|
||||
|
||||
if m.Packages.Append(new2) {
|
||||
log.Info("added", new2.Name, "ok (this is bad)")
|
||||
} else {
|
||||
log.Info("added", new2.Name, "failed (but ok)")
|
||||
}
|
||||
|
||||
fmt.Println("package count = ", m.Packages.Len())
|
||||
}
|
Loading…
Reference in New Issue