From 942478086173263b91cb9169f7e219d820294e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Delattre?= Date: Fri, 10 May 2019 19:42:11 +0200 Subject: [PATCH] Replace the makefile with a shell script --- Makefile | 46 ----------------------------------- README.md | 49 ++++++++------------------------------ dev.sh | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 85 deletions(-) delete mode 100644 Makefile create mode 100755 dev.sh diff --git a/Makefile b/Makefile deleted file mode 100644 index a6d7d0e..0000000 --- a/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -.PHONY: docker migration dev clean test build_docker_image - -DB_USER=test -DB_PASS=test -DB_DSN_DEV=postgres://$(DB_USER):$(DB_PASS)@127.0.0.1:5432/dev?sslmode=disable - -MIGRATION=migrate -database '$(DB_DSN_DEV)' -MIGRATION_SCHEMA=./migrations - -DOCKER_COMPOSE_FILE=./docker/docker-compose.yml -DOCKER_COMPOSE=docker-compose -f $(DOCKER_COMPOSE_FILE) - -build-prepare: - mkdir -p ./build/public/img/movies - -build: build-prepare - go build -o ./build/canape src/main.go - -watch-go: build-prepare - CONFIG_FILE="./config.yml" fresh -c fresh.conf -docker: - $(DOCKER_COMPOSE) up -d - sleep 8 - -build_docker_image: - rm -rf canapeapp - mkdir canapeapp - cp -R docker/run.sh canapeapp/run.sh - cp -R migrations canapeapp/migrations - cp $$GOPATH/bin/migrate canapeapp/migrate - yarn build - go build -v -o canapeapp/app backend/*.go - docker build --tag canapeapp:latest --file docker/Dockerfile-production . - rm -rf canapeapp - -migration-schema: docker - $(MIGRATION) -path $(MIGRATION_SCHEMA) up - -migration: migration-schema - -dev: docker migration watch-go - -clean: - -rm -r ./build - $(DOCKER_COMPOSE) stop - $(DOCKER_COMPOSE) rm --force -v diff --git a/README.md b/README.md index ab3231c..5f777c9 100644 --- a/README.md +++ b/README.md @@ -12,41 +12,25 @@ sudo npm install -g yarn yarn install ``` -### Go tools && Dependencies - -As there is no versioning yet, you need to manually go get all the packages - - -``` -go get ./... -``` - -go tools: - -``` -go get -v -u github.com/pilu/fresh -GO111MODULE=off go get -tags 'postgres' -u github.com/golang-migrate/migrate/cmd/migrate -``` - ## Dev #### Check your config.yml file -#### Run server +#### Run the backend -``` -make dev +```sh +./dev.sh back ``` -#### Run javascript tools +#### Run the frontend -``` -yarn start +```sh +./dev.sh front ``` ## Connect to the database -``` +```sh docker run -it --rm -e PGPASSWORD=test --link canape_postgresql_dev:postgres postgres:9.5 psql -h postgres -U test -d dev ``` @@ -54,7 +38,7 @@ docker run -it --rm -e PGPASSWORD=test --link canape_postgresql_dev:postgres pos Connect to the database and enter this sql queries: -``` +```sh INSERT INTO users (name, hash, admin, activated) VALUES ('test', '$2a$10$QHx07iyuxO1RcehgtjMgjOzv03Bx2eeSKvsxkoj9oR2NJ4cklh6ue', false, true); INSERT INTO users (name, hash, admin, activated) VALUES ('admin', '$2a$10$qAbyDZsHtcnhXhjhQZkD2uKlX72eMHsX8Hi2Cnl1vJUqHQiey2qa6', true, true); ``` @@ -69,19 +53,6 @@ Users: ## Run the tests - -``` -make test -``` - -## To clean up - -``` -make clean -``` - -## Production build - -``` -yarn build +```sh +go test ./... ``` diff --git a/dev.sh b/dev.sh new file mode 100755 index 0000000..22d0b6f --- /dev/null +++ b/dev.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +set -e + +DB_USER="test" +DB_PASS="test" +DB_DSN_DEV="postgres://$DB_USER:$DB_PASS@127.0.0.1:5432/dev?sslmode=disable" + +CONFIG_FILE=config.yml +MIGRATION_SCHEMA=./migrations +DOCKER_COMPOSE_FILE=./docker/docker-compose.yml + +_usage() { + echo "Usage:" + echo "$0 [back|front]" + exit 1 +} + +_check_command() { + command -v "$1" >/dev/null 2>/dev/null +} + +_ensure_command() { + _check_command "$1" && return 0 + echo "Please install $1 first" + exit 1 +} + +_migrate() { + migrate -database "$DB_DSN_DEV" "$@" +} + +_ensure_command go +_ensure_command docker +_ensure_command docker-compose +_ensure_command yarn + +_check_command migrate || { + echo "Installing migrate" + GO111MODULE=off \ + go get -tags 'postgres' \ + -u -v github.com/golang-migrate/migrate/cmd/migrate +} + +_check_command fresh || { + echo "Installing fresh" + GO111MODULE=off \ + go get -u -v github.com/pilu/fresh +} + +[ -f "$CONFIG_FILE" ] || { + echo "Please setup the canape configuration in $CONFIG_FILE" + exit 1 +} + +case $1 in + back) + docker-compose -f "$DOCKER_COMPOSE_FILE" up -d + # Wait for the container to be up + _migrate -path "$MIGRATION_SCHEMA" up + + CONFIG_FILE="./config.yml" fresh -c fresh.conf + ;; + front) + yarn install + yarn start + ;; + *) + _usage + ;; +esac