summaryrefslogtreecommitdiff
path: root/Makefile
blob: a33cdb066eb79764339e1e7e349006901345ad09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
.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/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