summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2018-08-20 20:58:51 +0200
committerIgor Scheller <igor.scheller@igorshp.de>2018-08-20 21:07:57 +0200
commitd6c8f1a61475fefa9594141aaf12a28d220bdaf8 (patch)
tree905051fdb1307f947c3a3a7be240609f8bc00e59 /bin
parentbf6efe532c8f2de84e95b090911280a9b1b61ce8 (diff)
parent2f41b9e4418def9b69cf237312bc592364585025 (diff)
Merge branch 'master' to 'rebuild-database'
Diffstat (limited to 'bin')
-rwxr-xr-xbin/deploy.sh73
-rwxr-xr-xbin/migrate21
2 files changed, 94 insertions, 0 deletions
diff --git a/bin/deploy.sh b/bin/deploy.sh
new file mode 100755
index 00000000..b731e36a
--- /dev/null
+++ b/bin/deploy.sh
@@ -0,0 +1,73 @@
+#!/usr/bin/env bash
+
+set -e
+
+remote_host=
+remote_path=
+deploy_id=
+
+show_help(){
+ echo "Usage: $0 [OPTION]..." >&2
+ echo "Deploys a software with rsync over ssh" >&2
+ echo "The options -i, -p and -r are required" >&2
+ echo "" >&2
+ echo " -h Display this help screen" >&2
+ echo " -i <id> Sets the id, a unique name for the deployment" >&2
+ echo " -p <path> Define the base path on the server" >&2
+ echo " -r <host> The remote server name and user" >&2
+}
+
+while getopts ":hi:p:r:" opt; do
+ case ${opt} in
+ h)
+ show_help
+ exit 1
+ ;;
+ r)
+ remote_host="$OPTARG"
+ ;;
+ p)
+ remote_path="$OPTARG"
+ ;;
+ i)
+ deploy_id="$OPTARG"
+ ;;
+ \?)
+ echo "Invalid option: -$OPTARG" >&2
+ exit 1
+ ;;
+ :)
+ echo "The option -$OPTARG requires an argument" >&2
+ exit 1
+ ;;
+ esac
+done
+
+if [ -z "${remote_host}" ] || [ -z "${remote_path}" ] || [ -z "${deploy_id}" ]; then
+ show_help
+ exit 1
+fi
+
+echo "syncing ${PWD}/ to ${remote_host}:${remote_path}/${deploy_id}/"
+
+rsync -vAax --exclude '.git*' --exclude .composer/ --exclude coverage/ --exclude node_modules/ \
+ -e "ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
+ ./ "${remote_host}:${remote_path}/${deploy_id}/"
+
+ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${remote_host}" "
+ set -e
+
+ if [[ -f \"${remote_path}/current/config/config.php\" ]]; then
+ echo \"Config backup\"
+ cp \"${remote_path}/current/config/config.php\" \"${deploy_id}-config.php\"
+ fi
+
+ echo \"Changing symlink\"
+ unlink_cmd=\$(command -v unlink || command -v rm)
+ \$unlink_cmd \"${remote_path}/current\" && ln -s \"${remote_path}/${deploy_id}\" \"${remote_path}/current\"
+
+ if [[ -f \"${deploy_id}-config.php\" ]]; then
+ echo \"Restoring config\"
+ cp \"${deploy_id}-config.php\" \"${remote_path}/current/config/config.php\"
+ fi
+"
diff --git a/bin/migrate b/bin/migrate
new file mode 100755
index 00000000..20ae2a93
--- /dev/null
+++ b/bin/migrate
@@ -0,0 +1,21 @@
+#!/usr/bin/env php
+<?php
+
+use Composer\Autoload\ClassLoader;
+use Engelsystem\Application;
+use Engelsystem\Database\Migration\Migrate;
+use Engelsystem\Database\Migration\MigrationServiceProvider;
+
+require_once __DIR__ . '/../includes/application.php';
+
+/** @var $loader ClassLoader */
+$baseDir = __DIR__ . '/../db/migrations';
+
+/** @var Application $app */
+$app = app();
+$app->register(MigrationServiceProvider::class);
+
+/** @var Migrate $migration */
+$migration = $app->get('db.migration');
+$migration->setOutput(function ($text) { echo $text . PHP_EOL; });
+$migration->run($baseDir, Migrate::UP);