# You must use the current protoc-gen-go
#
# go-clone --go-src google.golang.org/protobuf
# cd ~/go/src/google.golang.org/protobuf/cmd/protoc-gen-go
# go install


all: droplet.pb.go hypervisor.pb.go cluster.pb.go events.pb.go
	make -C example

vet: lint
	GO111MODULE=off go vet

lint:
	-buf lint droplet.proto

# autofixes your import headers in your golang files
goimports:
	goimports -w *.go
	make -C example goimports

redomod:
	rm -f go.*
	GO111MODULE= go mod init
	GO111MODULE= go mod tidy

clean:
	rm -f *.pb.go
	-rm -f go.*
	make -C example clean

droplet.pb.go: droplet.proto
	# protoc --go_out=. droplet.proto
	# This is switched over to use the new protoc-gen-go from   google.golang.org/protobuf/cmd/protoc-gen-go
	# the debian one (2024/10/21) seems to be the older/original one from github.com/golang/protobuf/protoc-gen-go
	cd ~/go/src && protoc --go_out=. --proto_path=go.wit.com/lib/protobuf/virtbuf \
		--go_opt=Mdroplet.proto=go.wit.com/lib/protobuf/virtbuf \
		droplet.proto

hypervisor.pb.go: hypervisor.proto
	cd ~/go/src && protoc --go_out=. --proto_path=go.wit.com/lib/protobuf/virtbuf \
		--go_opt=Mhypervisor.proto=go.wit.com/lib/protobuf/virtbuf \
		hypervisor.proto

events.pb.go: events.proto
	cd ~/go/src && protoc --go_out=. \
		--proto_path=go.wit.com/lib/protobuf/virtbuf \
		--go_opt=Mevents.proto=go.wit.com/lib/protobuf/virtbuf \
		events.proto

cluster.pb.go: cluster.proto
	cd ~/go/src && protoc --go_out=. --proto_path=go.wit.com/lib/protobuf/virtbuf \
		--go_opt=Mdroplet.proto=go.wit.com/lib/protobuf/virtbuf \
		--go_opt=Mcluster.proto=go.wit.com/lib/protobuf/virtbuf \
		--go_opt=Mhypervisor.proto=go.wit.com/lib/protobuf/virtbuf \
		cluster.proto

deps:
	apt install golang-goprotobuf-dev
	apt install protobuf-compiler

push:
	git pull
	git add --all
	git commit -a -s
	git push
