.PHONY: build VERSION = $(shell git describe --tags) BUILDTIME = $(shell date +%Y.%m.%d) # create the go.mod and go.sum if this is a brand new repo REDOMOD = $(shell if [ -e go.sum ]; then echo go.sum exists; else GO111MODULE= go mod init; GO111MODULE= go mod tidy; fi) check_files: @echo @echo the build is complicated right now because you need @echo the google version of protoc-gen-go which is not the one in debian sid yet @echo @if [ -f "/usr/bin/bin/protoc-gen-go" ]; then \ echo "the protoc-gen-go package is old in debian sid right now"; \ echo "for now, remove it"; \ apt remote proto-gen-go \ exit 1; \ fi @if [ ! -f "../../lib/protobuf/virtbuf/droplet.pb.go" ]; then \ echo "you must build the protobuf files first"; \ echo "They should be in: ../../lib/protobuf/virtbuf/droplet.pb.go"; \ make -C ../../lib/protobuf/virtbuf/; \ fi @if [ ! -f "$(HOME)/go/bin/protoc-gen-go" ]; then \ echo "you must build protoc-gen-go from google"; \ exit 1; \ fi make all all: make build ./virtigo --version @echo build worked build: GO111MODULE=off go build \ -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}" verbose: GO111MODULE=off go build -v -x \ -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}" install: GO111MODULE=off go install \ -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}" # makes a .deb package debian: rm -f ~/incoming/virtigo*deb go-deb --no-gui --repo go.wit.com/apps/virtigo xml-add: ./virtigo --libvirt ~/libvirt/*.xml --xml-ignore-disk=true xml-add-save: ./virtigo --libvirt ~/libvirt/*.xml --xml-ignore-disk=true --save start-pihole.wit.com: build rm -f /tmp/blahcarr.xml /tmp/pihole.wit.com.xml ./virtigo --start pihole.wit.com ./virtigo --libvirt /tmp/pihole.wit.com.xml start-pihole.wit.com-http: curl --silent http://localhost:8080/start?hostname=pihole.wit.com old-start-all-droplets: curl --silent http://localhost:8080/start?start=git.wit.org curl --silent http://localhost:8080/start?start=go.wit.com curl --silent http://localhost:8080/start?start=rdate.wit.com curl --silent http://localhost:8080/start?start=uptime.wit.com curl --silent http://localhost:8080/start?start=www.wit.com curl --silent http://localhost:8080/start?start=ping.wit.com curl --silent http://localhost:8080/start?start=wekan.wit.com curl --silent http://localhost:8080/start?start=caddy.wit.org curl --silent http://localhost:8080/start?start=immich.wit.org curl --silent http://localhost:8080/start?start=bernacchi @#curl --silent http://localhost:8080/start?start=jcarr @# ./virtigo --start jcarr curl-uptime: curl --silent http://localhost:8080/uptime curl-droplets: curl --silent http://localhost:8080/droplets curl-writeconfig: curl --silent http://localhost:8080/writeconfig # this is for release builds using the go.mod files release-build: @echo ${REDOMOD} go build -v -ldflags "-X main.Version=${VERSION} -X gui.GUIVERSION=${VERSION}" # autofixes your import headers in your golang files goimports: goimports -w *.go # remake the go.mod and go.sum files redomod: rm -f go.* GO111MODULE= go mod init GO111MODULE= go mod tidy clean: rm -f go.* rm -f virtigo* # git clone the sources and all the golang dependancies into ~/go/src # if you don't have go-clone, you can get it from http://go.wit.com/ git-clone: go-clone --recursive --go-src --no-work go.wit.com/apps/go-clone go-clone --recursive --go-src --no-work go.wit.com/apps/virtigo go-clone --recursive --go-src --no-work go.wit.com/apps/gowebd go-clone --recursive --go-src --no-work go.wit.com/lib/daemons/virtigod http-uptime: curl --silent http://localhost:8080/uptime http-droplets: curl --silent http://localhost:8080/droplets http-missing: curl --silent http://localhost:8080/missing http-dumplibvirtxml: curl --silent http://localhost:8080//dumplibvirtxml protogen: go-clone google.golang.org/protobuf cd ~/go/src/google.golang.org/protobuf/cmd/protoc-gen-go && go install