From d2d6b8efd67dfd07daba01f8a5c7f9036fcc3f27 Mon Sep 17 00:00:00 2001 From: Charles-Antoine Mathieu Date: Tue, 1 Sep 2015 21:53:44 +0200 Subject: [PATCH 01/12] crash if config file is not valid --- server/common/config.go | 4 ++-- server/plikd.cfg | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/server/common/config.go b/server/common/config.go index f56aea9a..f440ad55 100644 --- a/server/common/config.go +++ b/server/common/config.go @@ -92,7 +92,7 @@ func NewConfiguration() (this *Configuration) { this.ListenPort = 8080 this.DataBackend = "file" this.MetadataBackend = "file" - this.MaxFileSize = 1048576 // 1MB + this.MaxFileSize = 10737418240 // 10GB this.DefaultTTL = 2592000 // 30 days this.MaxTTL = 0 this.SslEnabled = false @@ -108,7 +108,7 @@ func NewConfiguration() (this *Configuration) { func LoadConfiguration(file string) { Config = NewConfiguration() if _, err := toml.DecodeFile(file, Config); err != nil { - Log().Warningf("Unable to load config file %s : %s", file, err) + Log().Fatalf("Unable to load config file %s : %s", file, err) } Log().SetMinLevelFromString(Config.LogLevel) Log().Dump(logger.DEBUG, Config) diff --git a/server/plikd.cfg b/server/plikd.cfg index 039506d1..13bf2663 100644 --- a/server/plikd.cfg +++ b/server/plikd.cfg @@ -10,7 +10,7 @@ LogLevel = "INFO" # Other levels : DEBUG, WARNING, CRITICAL, FATAL ListenPort = 8080 ListenAddress = "0.0.0.0" -MaxFileSize = 1073741824 # 1GB +MaxFileSize = 10737418240 # 10GB DefaultTTL = 2592000 # 30 days MaxTTL = 2592000 # 0 => No limit From 9994afe24795824f3b37edfeb51cc8ef4d77f67f Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (desk)" Date: Tue, 8 Sep 2015 12:28:55 +0200 Subject: [PATCH 02/12] Fix: Check errors on openpgp package --- client/crypto/pgp/pgp.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/client/crypto/pgp/pgp.go b/client/crypto/pgp/pgp.go index 303c2b21..14b796da 100644 --- a/client/crypto/pgp/pgp.go +++ b/client/crypto/pgp/pgp.go @@ -123,8 +123,15 @@ func (pb *Backend) Configure(arguments map[string]interface{}) (err error) { // Encrypt implementation for PGP Crypto Backend func (pb *Backend) Encrypt(reader io.Reader, writer io.Writer) (err error) { - w, _ := armor.Encode(writer, "PGP MESSAGE", nil) - plaintext, _ := openpgp.Encrypt(w, []*openpgp.Entity{pb.Config.Entity}, nil, &openpgp.FileHints{IsBinary: true}, nil) + w, err := armor.Encode(writer, "PGP MESSAGE", nil) + if err != nil { + return (err) + } + + plaintext, err := openpgp.Encrypt(w, []*openpgp.Entity{pb.Config.Entity}, nil, &openpgp.FileHints{IsBinary: true}, nil) + if err != nil { + return (err) + } _, err = io.Copy(plaintext, reader) if err != nil { From 402d7ac911e19274fa8a3e56c9625a5018c05d7c Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (desk)" Date: Wed, 9 Sep 2015 15:57:33 +0200 Subject: [PATCH 03/12] Fix: Escape file url in client --- client/plik.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client/plik.go b/client/plik.go index e4f1dfec..569c5800 100644 --- a/client/plik.go +++ b/client/plik.go @@ -432,8 +432,16 @@ func getFileURL(upload *common.Upload, file *common.File) (fileURL string) { if upload.Stream { mode = "stream" } + fileURL += fmt.Sprintf("%s/%s/%s/%s/%s", config.Config.URL, mode, upload.ID, file.ID, file.Name) - return + + // Parse to get a nice escaped url + u, err := url.Parse(fileURL) + if err != nil { + return "" + } + + return u.String() } func updateClient(forceUpdate bool) (err error) { From d5fdd29c8e2b4164671d4d9833fa889dfae44998 Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (mbodjiki.sdev.sbg.spinoff.ovh.net)" Date: Thu, 10 Sep 2015 08:51:43 +0000 Subject: [PATCH 04/12] Fix: Remove useless go get, since whole project is vendorized --- Makefile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Makefile b/Makefile index ab11accf..515822a9 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,6 @@ deps: server: @cd server/public && bower install --allow-root @cd server/public && grunt - @cd server && go get -v @sed -i -e "s/##VERSION##/$(RELEASE_VERSION)/g" server/common/config.go @cd server && go build -o plikd ./ @sed -i -e "s/$(RELEASE_VERSION)/##VERSION##/g" server/common/config.go @@ -53,21 +52,18 @@ server: servers: @cd server/public && bower install --allow-root @cd server/public && grunt - @cd server && go get -v @server/build.sh servers ### # Build plik client for the current architecture ### client: - @cd client && go get -v @cd client && go build -o plik ./ ### # Build plik client for all architectures ### clients: - @cd client && go get -v @client/build.sh clients @mkdir -p clients/bash && cp client/plik.sh clients/bash From 1c11f4fecb9e4719864004392838f01074f30160 Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (mbodjiki.sdev.sbg.spinoff.ovh.net)" Date: Thu, 10 Sep 2015 12:05:56 +0000 Subject: [PATCH 05/12] Fix: Chocapic character in Makefile 'all' target --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 515822a9..54dc6dde 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ RELEASE_VERSION=`cat VERSION` RELEASE_DIR="release/plik-$(RELEASE_VERSION)" -all: clean deps server client +all: clean deps server client ### # Install npm build dependencies From cb6667bb865972fdd78e47a586ec7bfb20c75dd6 Mon Sep 17 00:00:00 2001 From: Charles-Antoine Mathieu Date: Sun, 13 Sep 2015 13:09:26 +0200 Subject: [PATCH 06/12] Add creation date in cli client summary --- client/plik.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/plik.go b/client/plik.go index 569c5800..e8c7877f 100644 --- a/client/plik.go +++ b/client/plik.go @@ -145,8 +145,11 @@ Options: } config.Debug("Got upload info : " + config.Sdump(uploadInfo)) + // Mon, 02 Jan 2006 15:04:05 MST + creationDate := time.Unix(uploadInfo.Creation, 0).Format(time.RFC1123) + // Display upload url - printf("Upload successfully created : \n") + printf("Upload successfully created at %s : \n", creationDate) printf(" %s/#/?id=%s\n\n", config.Config.URL, uploadInfo.ID) // Match file id from server using client reference From beb3af681db426093a38f7f3dcd82812e8be120a Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (desk)" Date: Mon, 14 Sep 2015 10:09:10 +0200 Subject: [PATCH 07/12] Update VERSION for next release --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index d3827e75..7dea76ed 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0 +1.0.1 From 328be273c06ef783fe331dce9e110dc5a6eacfdf Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (desk)" Date: Mon, 14 Sep 2015 10:10:05 +0200 Subject: [PATCH 08/12] Fix: Makefile did not gzip releases --- Makefile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 54dc6dde..f2ea3a83 100644 --- a/Makefile +++ b/Makefile @@ -110,23 +110,23 @@ releases: release servers @mkdir -p releases - @cp -R servers/linux-amd64/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-linux-64bits.tar.gz * - @cp -R servers/linux-386/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-linux-32bits.tar.gz * - @cp -R servers/linux-arm/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-linux-arm.tar.gz * + @cp -R servers/linux-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-linux-64bits.tar.gz * + @cp -R servers/linux-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-linux-32bits.tar.gz * + @cp -R servers/linux-arm/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-linux-arm.tar.gz * - @cp -R servers/freebsd-amd64/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-freebsd-64bits.tar.gz * - @cp -R servers/freebsd-386/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-freebsd-32bits.tar.gz * - @cp -R servers/freebsd-arm/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-freebsd-arm.tar.gz * + @cp -R servers/freebsd-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-freebsd-64bits.tar.gz * + @cp -R servers/freebsd-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-freebsd-32bits.tar.gz * + @cp -R servers/freebsd-arm/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-freebsd-arm.tar.gz * - @cp -R servers/openbsd-amd64/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-openbsd-64bits.tar.gz * - @cp -R servers/openbsd-386/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-openbsd-32bits.tar.gz * + @cp -R servers/openbsd-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-openbsd-64bits.tar.gz * + @cp -R servers/openbsd-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-openbsd-32bits.tar.gz * @rm $(RELEASE_DIR)/server/plikd @cp -R servers/windows-amd64/plikd.exe $(RELEASE_DIR)/server && cd release && zip -r ../releases/plik-`cat ../VERSION`-windows-64bits.zip . @cp -R servers/windows-386/plikd.exe $(RELEASE_DIR)/server && cd release && zip -r ../releases/plik-`cat ../VERSION`-windows-32bits.zip . - @cp -R servers/darwin-amd64/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-macos-64bits.tar.gz * - @cp -R servers/darwin-386/plikd $(RELEASE_DIR)/server && cd release && tar cvf ../releases/plik-`cat ../VERSION`-macos-32bits.tar.gz * + @cp -R servers/darwin-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-macos-64bits.tar.gz * + @cp -R servers/darwin-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-macos-32bits.tar.gz * @md5sum releases/* > releases/md5sum.txt From 83d7e3d7ae430c7289d83a6a79716b8e000e8a80 Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (desk)" Date: Mon, 14 Sep 2015 10:19:06 +0200 Subject: [PATCH 09/12] Fix: int overflow on Mac OS 32bits --- server/common/config.go | 2 +- server/plik.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/common/config.go b/server/common/config.go index f440ad55..fc9c11ae 100644 --- a/server/common/config.go +++ b/server/common/config.go @@ -47,7 +47,7 @@ type Configuration struct { LogLevel string ListenAddress string ListenPort int - MaxFileSize int + MaxFileSize int64 DefaultTTL int MaxTTL int diff --git a/server/plik.go b/server/plik.go index ef7777cb..c1a2f710 100644 --- a/server/plik.go +++ b/server/plik.go @@ -677,7 +677,7 @@ func addFileHandler(resp http.ResponseWriter, req *http.Request) { md5Hash.Write(buf[:bytesRead]) // Check upload max size limit - if totalBytes > common.Config.MaxFileSize { + if int64(totalBytes) > common.Config.MaxFileSize { err = ctx.EWarningf("File too big (limit is set to %d bytes)", common.Config.MaxFileSize) preprocessWriter.CloseWithError(err) return From 78328cbd65ebce7384c173d4fe0fce0f27186122 Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (desk)" Date: Mon, 14 Sep 2015 14:10:24 +0200 Subject: [PATCH 10/12] New: Separate frontend of server in Makefile, and remove public folder on clean --- Makefile | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index f2ea3a83..2737cc1e 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,10 @@ RELEASE_VERSION=`cat VERSION` RELEASE_DIR="release/plik-$(RELEASE_VERSION)" -all: clean deps server client +GOHOSTOS=`go env GOHOSTOS` +GOHOSTARCH=`go env GOHOSTARCH` + +all: clean deps frontend server client ### # Install npm build dependencies @@ -36,12 +39,19 @@ all: clean deps server client deps: @cd server/public && npm install + +### +# Build frontend ressources +### +frontend: + @if [ ! -d server/public/bower_components ]; then cd server/public && bower install --allow-root ; fi ; + @if [ ! -d server/public/public ]; then cd server/public && grunt ; fi ; + + ### # Build plik server for the current architecture ### server: - @cd server/public && bower install --allow-root - @cd server/public && grunt @sed -i -e "s/##VERSION##/$(RELEASE_VERSION)/g" server/common/config.go @cd server && go build -o plikd ./ @sed -i -e "s/$(RELEASE_VERSION)/##VERSION##/g" server/common/config.go @@ -87,7 +97,7 @@ debs-client: clients ### # Build release archive ### -release: clean server clients +release: clean frontend server clients @mkdir -p $(RELEASE_DIR)/server/public @cp -R clients $(RELEASE_DIR) @@ -102,6 +112,8 @@ release: clean server clients @cp -R server/public/public $(RELEASE_DIR)/server/public @cp -R server/public/index.html $(RELEASE_DIR)/server/public + @cd release && tar czvf plik-`cat ../VERSION`-$(GOHOSTOS)-$(GOHOSTARCH).tar.gz * + ### # Build release archives for all architectures @@ -136,6 +148,7 @@ releases: release servers ### clean: @rm -rf server/public/bower_components + @rm -rf server/public/public @rm -rf server/plikd @rm -rf client/plik @rm -rf clients From e8a760ba4b5bffcba54b3cfe66dd7d394faf8a9c Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (desk)" Date: Mon, 14 Sep 2015 17:05:07 +0200 Subject: [PATCH 11/12] New: Add a Dockerfile for project --- Dockerfile | 30 ++++++++++++++++++++++++++++++ Makefile | 7 +++++++ README.md | 36 +++++++++++++++++++++++++++++++++--- 3 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..c9fa5292 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +##### +#### +### Plik - Docker file +## +# + +# Let's start with a fresh debian jessie +FROM debian:jessie + +# Some generic informations +MAINTAINER Charles-Antoine Mathieu +MAINTAINER Mathieu Bodjikian + +# Create user +RUN useradd -U -d /home/plik -m -s /bin/false plik + +# Expose the plik port +EXPOSE 8080 + +# Copy plik +ADD server /home/plik/server/ +ADD clients /home/plik/clients/ +RUN chown -R plik:plik /home/plik +RUN chmod +x /home/plik/server/plikd + +# Launch it +USER plik +WORKDIR /home/plik/server +CMD ./plikd + diff --git a/Makefile b/Makefile index 2737cc1e..fb4cbe09 100644 --- a/Makefile +++ b/Makefile @@ -77,6 +77,13 @@ clients: @client/build.sh clients @mkdir -p clients/bash && cp client/plik.sh clients/bash +## +# Build docker +## +docker: release + @cp Dockerfile $(RELEASE_DIR) + @cd $(RELEASE_DIR) && docker build -t plik . + ### # Make server and clients Debian packages ### diff --git a/README.md b/README.md index 3e55319f..e7028562 100644 --- a/README.md +++ b/README.md @@ -64,10 +64,12 @@ $ sudo -c "npm install -g bower grunt-cli" $ sudo -c "client/build.sh env" ``` -To build everything : +To build everything and run it : ```sh -$ make server -$ make clients +$ make deps +$ make release +$ cd server +$ ./plikd ``` To make debian packages : @@ -80,6 +82,34 @@ To make release archives : $ make releases ``` + +### Docker +Plik comes with a simple Dockerfile that allows you to run it in a container. + +First, you need to build the docker image : +```sh +$ make docker +``` + +Then you can run an instance and map the local port 80 to the plik port : +```sh +$ docker run -t -d -p 80:8080 plik +ab9b2c99da1f3e309cd3b12392b9084b5cafcca0325d7d47ff76f5b1e475d1b9 +``` + +You can also use a volume to store uploads on a local folder. +Here, we map local folder /data to the /home/plik/server/files folder of the container (this is the default uploads directory) : +```sh +$ docker run -t -d -p 80:8080 -v /data:/home/plik/server/files plik +ab9b2c99da1f3e309cd3b12392b9084b5cafcca0325d7d47ff76f5b1e475d1b9 +``` + +To use a different config file, you can also map a single file to the container at runtime : +```sh +$ docker run -t -d -p 80:8080 -v plikd.cfg:/home/plik/server/plikd.cfg plik +ab9b2c99da1f3e309cd3b12392b9084b5cafcca0325d7d47ff76f5b1e475d1b9 +``` + ### API Plik server expose a REST-full API to manage uploads and get files : From a54b56182a5c22d6b21ade19f5910080f9da7197 Mon Sep 17 00:00:00 2001 From: "Mathieu Bodjikian (desk)" Date: Mon, 14 Sep 2015 18:10:15 +0200 Subject: [PATCH 12/12] Fix: Only include release folder in releases target in Makefile --- Makefile | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index fb4cbe09..6a8077c2 100644 --- a/Makefile +++ b/Makefile @@ -129,23 +129,23 @@ releases: release servers @mkdir -p releases - @cp -R servers/linux-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-linux-64bits.tar.gz * - @cp -R servers/linux-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-linux-32bits.tar.gz * - @cp -R servers/linux-arm/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-linux-arm.tar.gz * + @cp -R servers/linux-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-linux-64bits.tar.gz plik-`cat ../VERSION` + @cp -R servers/linux-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-linux-32bits.tar.gz plik-`cat ../VERSION` + @cp -R servers/linux-arm/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-linux-arm.tar.gz plik-`cat ../VERSION` - @cp -R servers/freebsd-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-freebsd-64bits.tar.gz * - @cp -R servers/freebsd-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-freebsd-32bits.tar.gz * - @cp -R servers/freebsd-arm/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-freebsd-arm.tar.gz * + @cp -R servers/freebsd-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-freebsd-64bits.tar.gz plik-`cat ../VERSION` + @cp -R servers/freebsd-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-freebsd-32bits.tar.gz plik-`cat ../VERSION` + @cp -R servers/freebsd-arm/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-freebsd-arm.tar.gz plik-`cat ../VERSION` - @cp -R servers/openbsd-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-openbsd-64bits.tar.gz * - @cp -R servers/openbsd-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-openbsd-32bits.tar.gz * + @cp -R servers/openbsd-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-openbsd-64bits.tar.gz plik-`cat ../VERSION` + @cp -R servers/openbsd-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-openbsd-32bits.tar.gz plik-`cat ../VERSION` @rm $(RELEASE_DIR)/server/plikd - @cp -R servers/windows-amd64/plikd.exe $(RELEASE_DIR)/server && cd release && zip -r ../releases/plik-`cat ../VERSION`-windows-64bits.zip . - @cp -R servers/windows-386/plikd.exe $(RELEASE_DIR)/server && cd release && zip -r ../releases/plik-`cat ../VERSION`-windows-32bits.zip . + @cp -R servers/windows-amd64/plikd.exe $(RELEASE_DIR)/server && cd release && zip -r ../releases/plik-`cat ../VERSION`-windows-64bits.zip plik-`cat ../VERSION` + @cp -R servers/windows-386/plikd.exe $(RELEASE_DIR)/server && cd release && zip -r ../releases/plik-`cat ../VERSION`-windows-32bits.zip plik-`cat ../VERSION` - @cp -R servers/darwin-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-macos-64bits.tar.gz * - @cp -R servers/darwin-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-macos-32bits.tar.gz * + @cp -R servers/darwin-amd64/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-macos-64bits.tar.gz plik-`cat ../VERSION` + @cp -R servers/darwin-386/plikd $(RELEASE_DIR)/server && cd release && tar czvf ../releases/plik-`cat ../VERSION`-macos-32bits.tar.gz plik-`cat ../VERSION` @md5sum releases/* > releases/md5sum.txt