virtigo/Makefile

122 lines
3.7 KiB
Makefile

.PHONY: build
VERSION = $(shell git describe --tags)
# 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 -v -ldflags "-X main.Version=${VERSION} -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