fix tar bombs

this changes the release targets in the Makefile to use a subdirectory
of the format BINARYNAME_GITREV so extracting the archive results in a
single directory.
This commit is contained in:
Rob Loranger 2019-08-09 11:15:36 -07:00
parent 8557119451
commit 1301160921
No known key found for this signature in database
GPG key ID: D6F1633A4F0903B8

View file

@ -7,6 +7,7 @@ GOBUILD=$(GOCMD) build $(LDFLAGS)
GOTEST=$(GOCMD) test $(LDFLAGS)
GOGET=$(GOCMD) get
BINARY_NAME=writefreely
TAR_NAME=$(BINARY_NAME)_$(GITREV)
DOCKERCMD=docker
IMAGE_NAME=writeas/writefreely
TMPBIN=./tmp
@ -69,39 +70,40 @@ install : build
cd less/; $(MAKE) install $(MFLAGS)
release : clean ui assets
mkdir build
cp -r templates build
cp -r pages build
cp -r static build
mkdir build/keys
mkdir -p build/$(TAR_NAME)
cp -r templates build/$(TAR_NAME)
cp -r pages build/$(TAR_NAME)
cp -r static build/$(TAR_NAME)
mkdir build/$(TAR_NAME)/keys
$(MAKE) build-linux
mv build/$(BINARY_NAME)-linux-amd64 build/$(BINARY_NAME)
cd build; tar -cvzf ../$(BINARY_NAME)_$(GITREV)_linux_amd64.tar.gz *
rm build/$(BINARY_NAME)
mv build/$(BINARY_NAME)-linux-amd64 build/$(TAR_NAME)/$(BINARY_NAME)
tar -cvzf $(TAR_NAME)_linux_amd64.tar.gz -C build $(TAR_NAME)
rm build/$(TAR_NAME)/$(BINARY_NAME)
$(MAKE) build-arm7
mv build/$(BINARY_NAME)-linux-arm-7 build/$(BINARY_NAME)
cd build; tar -cvzf ../$(BINARY_NAME)_$(GITREV)_linux_arm7.tar.gz *
rm build/$(BINARY_NAME)
mv build/$(BINARY_NAME)-linux-arm-7 build/$(TAR_NAME)/$(BINARY_NAME)
tar -cvzf $(TAR_NAME)_linux_arm7.tar.gz -C build $(TAR_NAME)
rm build/$(TAR_NAME)/$(BINARY_NAME)
$(MAKE) build-darwin
mv build/$(BINARY_NAME)-darwin-10.6-amd64 build/$(BINARY_NAME)
cd build; tar -cvzf ../$(BINARY_NAME)_$(GITREV)_macos_amd64.tar.gz *
rm build/$(BINARY_NAME)
mv build/$(BINARY_NAME)-darwin-10.6-amd64 build/$(TAR_NAME)/$(BINARY_NAME)
tar -cvzf $(TAR_NAME)_macos_amd64.tar.gz -C build $(TAR_NAME)
rm build/$(TAR_NAME)/$(BINARY_NAME)
$(MAKE) build-windows
mv build/$(BINARY_NAME)-windows-4.0-amd64.exe build/$(BINARY_NAME).exe
cd build; zip -r ../$(BINARY_NAME)_$(GITREV)_windows_amd64.zip ./*
mv build/$(BINARY_NAME)-windows-4.0-amd64.exe build/$(TAR_NAME)/$(BINARY_NAME).exe
cd build; zip -r ../$(TAR_NAME)_windows_amd64.zip ./$(TAR_NAME)
rm build/$(TAR_NAME)/$(BINARY_NAME)
$(MAKE) build-docker
$(MAKE) release-docker
# This assumes you're on linux/amd64
release-linux : clean ui
mkdir build
cp -r templates build
cp -r pages build
cp -r static build
mkdir build/keys
mkdir -p build/$(TAR_NAME)
cp -r templates build/$(TAR_NAME)
cp -r pages build/$(TAR_NAME)
cp -r static build/$(TAR_NAME)
mkdir build/$(TAR_NAME)/keys
$(MAKE) build-no-sqlite
mv cmd/writefreely/$(BINARY_NAME) build/$(BINARY_NAME)
cd build; tar -cvzf ../$(BINARY_NAME)_$(GITREV)_linux_amd64.tar.gz *
mv cmd/writefreely/$(BINARY_NAME) build/$(TAR_NAME)/$(BINARY_NAME)
tar -cvzf $(TAR_NAME)_linux_amd64.tar.gz -C build $(TAR_NAME)
release-docker :
$(DOCKERCMD) push $(IMAGE_NAME)