summaryrefslogtreecommitdiff
path: root/Makefile
blob: d2f475173cc81b62ad3b8a619426e83c4f7d0d4d (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
.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