.PHONY: run clean

SUDO=$(shell docker info >/dev/null 2>&1 || echo "sudo -E")
EXE=traffic-control
IMAGE=weaveworks/scope-$(EXE)-plugin
NAME=weaveworks-scope-${EXE}-plugin
UPTODATE=.$(EXE).uptodate

run: $(UPTODATE)
	# --net=host gives us the remote hostname, in case we're being launched against a non-local docker host.
	# We could also pass in the `-hostname=foo` flag, but that doesn't work against a remote docker host.
	$(SUDO) docker run --rm -it \
		--net=host \
		--pid=host \
		--privileged \
		-v /var/run:/var/run \
		--name $(NAME) $(IMAGE)

$(UPTODATE): $(EXE) Dockerfile
	$(SUDO) docker build -t $(IMAGE) .
	touch $@

$(EXE): $(shell find . -name *.go)
	$(SUDO) docker run --rm \
		-v "$$PWD":/go/src/hosting/org/$(EXE) \
		-v $(shell pwd)/../../../vendor:/go/src/hosting/org/$(EXE)/vendor \
		-w /go/src/hosting/org/$(EXE) \
		golang:1.6 go build -v


clean:
	- rm -rf $(UPTODATE) $(EXE)
	- $(SUDO) docker rmi $(IMAGE)
