diff --git a/.gitignore b/.gitignore index f707010..53cf198 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +gotty-client /dist # Compiled Object files, Static and Dynamic libs (Shared Objects) diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7072065 --- /dev/null +++ b/Makefile @@ -0,0 +1,61 @@ +COMMANDS := $(addprefix ./,$(wildcard cmd/*)) +PACKAGES := . +VERSION := $(shell cat .goxc.json | jq -c .PackageVersion | sed 's/"//g') +SOURCES := $(shell find . -name "*.go") +GOTTY_URL := http://localhost:8080 + + +.PHONY: build +build: $(notdir $(COMMANDS)) + + +.PHONY: build-docker +build-docker: contrib/docker/.docker-container-built + + +.PHONY: clean +clean: + rm -f $(notdir $(COMMANDS)) + + +.PHONY: install +install: + go install $(COMMANDS) + + +.PHONY: release +release: + goxc + + +.PHONY: build-docker +build-docker: contrib/docker/.docker-container-built + + +.PHONY: run-docker +run-docker: build-docker + docker run -it --rm moul/gotty-client $(GOTTY_URL) + + +$(notdir $(COMMANDS)): $(SOURCES) + gofmt -w $(PACKAGES) ./cmd/$@ + go test -i $(PACKAGES) ./cmd/$@ + go build -o $@ ./cmd/$@ + @# ./$@ --version + + +dist/latest/gotty-client_latest_linux_386: $(SOURCES) + mkdir -p dist + rm -f dist/latest + (cd dist; ln -s $(VERSION) latest) + goxc -bc="linux,386" xc + cp dist/latest/gotty-client_$(VERSION)_linux_386 dist/latest/gotty-client_latest_linux_386 + + +contrib/docker/.docker-container-built: dist/latest/gotty-client_latest_linux_386 + cp dist/latest/gotty-client_latest_linux_386 contrib/docker/gotty-client + docker build -t moul/gotty-client:latest contrib/docker + docker tag moul/gotty-client:latest moul/gotty-client:$(VERSION) + docker run -it --rm moul/gotty-client --version + docker inspect --type=image --format="{{ .Id }}" moul/gotty-client > $@.tmp + mv $@.tmp $@ diff --git a/contrib/docker/Dockerfile b/contrib/docker/Dockerfile new file mode 100644 index 0000000..420997d --- /dev/null +++ b/contrib/docker/Dockerfile @@ -0,0 +1,5 @@ +FROM scratch + +ADD ./gotty-client /gotty-client + +ENTRYPOINT ["/gotty-client"]