From e386dce818f4ba084e2b8f62abe0189ab512ad3a Mon Sep 17 00:00:00 2001 From: Spokey Wheeler <12411310+SpokeyWheeler@users.noreply.github.com> Date: Sat, 9 Jan 2021 21:22:05 +0000 Subject: [PATCH] Standardise shebang and add MariaDB --- cache | 2 +- install-package | 2 +- release/create_release.sh | 2 +- retry | 2 +- sem-dockerize | 0 sem-install | 2 +- sem-service | 31 +++++++++++++++++++++++++++++- sem-service-check-params | 40 +++++++++++++++++++++++++++++++++++++++ sem-version | 2 +- ssh-session-cli | 0 10 files changed, 76 insertions(+), 7 deletions(-) mode change 100644 => 100755 retry mode change 100644 => 100755 sem-dockerize mode change 100644 => 100755 sem-service-check-params mode change 100644 => 100755 ssh-session-cli diff --git a/cache b/cache index 34a45086..6a510893 100755 --- a/cache +++ b/cache @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Managing a Semaphore project's dependency cache files diff --git a/install-package b/install-package index fee97381..5c24ffbb 100755 --- a/install-package +++ b/install-package @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Package installer with caching, version 2.2 show_usage_and_exit() { diff --git a/release/create_release.sh b/release/create_release.sh index e8d0ee89..333c1de8 100755 --- a/release/create_release.sh +++ b/release/create_release.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -euo pipefail diff --git a/retry b/retry old mode 100644 new mode 100755 index 6586156a..d7dd7e84 --- a/retry +++ b/retry @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Copied from: https://raw.githubusercontent.com/renderedtext/scripts/8f67b78cef7f5a7556777f59a5f290db8b23abe1/utility/retry # diff --git a/sem-dockerize b/sem-dockerize old mode 100644 new mode 100755 diff --git a/sem-install b/sem-install index f9371843..4d1713c8 100644 --- a/sem-install +++ b/sem-install @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash SEMAPHORE_PACKAGE_REPOSITORY="http://packages.semaphoreci.com" install::available() { response=$(curl --write-out %{http_code} --head --silent --output /dev/null $SEMAPHORE_PACKAGE_REPOSITORY/${language}/${language_version}.tar.gz) diff --git a/sem-service b/sem-service index e05e3c64..fed561f0 100755 --- a/sem-service +++ b/sem-service @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Misc DATE_FORMAT='%H:%M %d/%m/%Y' @@ -8,6 +8,7 @@ state=('success' 'fail') download_location='local' declare -A sem_services sem_services['memcached']="1.5 1.6" +#sem_services['mariadb']="10.1.48 10.1 10.2.36 10.2 10.3.27 10.3 10.4.17 10.4 10.5.8 10.5 10" sem_services['mysql']="5.5 5.6.52 5.6 5.6.50 5.7.13 5.7.25 5.7.27 5.7.31 5.7.32 5.7 5 8.0.16 8.0.22 8.0 8" sem_services['redis']="2.8.23 2.8 2 3.2.4 3.2.12 3.2 3 4.0.12 4.0.14 4.0 4 5.0.6 5.0.9 5.0 5 6.0.5 6.0.8 6.0 6" sem_services['mongo']="3.2.1 3.2 3.6.20 3.6 3 4.0.20 4.0 4.1.13 4.1 4.2.10 4.2 4.4.1 4.4 4" @@ -74,6 +75,26 @@ service::check_version(){ fi } +service::start_mariadb() { + service_version=$1 + shift + local service_image='' + + docker_params="$@" + service::pull_image "$service_image:$service_version" + docker_output=$(docker run $docker_params $service_image:$service_version) + # run only if previous command exited successfully + docker_status=$(sem-dockerize 3306 mariadb) + if [ "$docker_status" == "0" ]; then + echo "done." + echo "MariaDB $service_version is running at 0.0.0.0:3306" + echo "To access it use username 'root' and blank password." + else + # if not started in 30 seconds print logs and exit + echo "$docker_output" + fi +} + service::start_mysql() { service_version=$1 shift @@ -248,6 +269,13 @@ service::start() { echo -n "Starting $service_name..." case "$service_name" in + "mariadb" ) + shift + service_version=$(sem-service-check-params mariadb $@) + service::check_version 'mariadb' ${service_version%% *} + service::duration service::start_mariadb $service_version total $service_name + exit 0 + ;; "mysql" ) shift service_version=$(sem-service-check-params mysql $@) @@ -439,6 +467,7 @@ service::print_usage() { echo -e "\nsem-service [start|stop|status] [service] [version]\n" echo "Available services:" + echo "mariadb (default: 10.5), available versions: ${sem_services['mariadb']}" echo "mysql (default: 5.6), available versions: ${sem_services['mysql']}" echo "postgres (default: 9.6), available versions: ${sem_services['postgres']}" echo "redis (default: 4.0), available versions: ${sem_services['redis']}" diff --git a/sem-service-check-params b/sem-service-check-params old mode 100644 new mode 100755 index d9726c49..0c53b788 --- a/sem-service-check-params +++ b/sem-service-check-params @@ -1,5 +1,41 @@ #!/usr/bin/env bash +params-check::mariadb () { + default_params='--net=host --rm -d -e MYSQL_ALLOW_EMPTY_PASSWORD=true -v /var/tmp/mysql:/var/lib/mysql --name mariadb -v /var/run/mysqld:/var/run/mysqld ' + service_version="10.5" + sudo mkdir -p /var/run/mysqld ; sudo chmod -R 0777 /var/run/mysqld + sudo mkdir -p /var/tmp/mysqld ; sudo chmod -R 0777 /var/tmp/mysqld + params="" + if [ "${1:0:1}" == "-" ];then + params="$@" + else + service_version="${1:-$service_version}" + tmp="${@:2}" + params="${tmp:-$default_params}" + fi + if [ "$default_params" != "$params" ];then + username=""; password=""; db=" -e MYSQL_DATABASE="; dbname=""; + for words in $params; do + case $words in + --username=* ) + username=" -e MYSQL_USER=$(echo $words|cut -d'=' -f2) " + ;; + --password=* ) + password=" -e MYSQL_PASSWORD=$(echo $words|cut -d'=' -f2) " + ;; + --db=* ) + dbname=$(echo $words|cut -d'=' -f2) + ;; + *) + ;; + esac + done + dbname=${dbname:-'test'} + [ "$username$password" ] && default_params="$default_params$username$password$db$dbname " + fi + echo "$service_version $default_params" +} + params-check::mysql () { default_params='--net=host --rm -d -e MYSQL_ALLOW_EMPTY_PASSWORD=true -v /var/tmp/mysql:/var/lib/mysql --name mysql -v /var/run/mysqld:/var/run/mysqld ' service_version="5.6" @@ -123,6 +159,10 @@ params-check::mongodb () { params-check::main () { case "$1" in + "mariadb" ) + shift + params-check::mariadb $@ + ;; "mysql" ) shift params-check::mysql $@ diff --git a/sem-version b/sem-version index e81b6274..0a43e971 100755 --- a/sem-version +++ b/sem-version @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash source ~/.toolbox/sem-install # Changing language versions diff --git a/ssh-session-cli b/ssh-session-cli old mode 100644 new mode 100755