diff --git a/l3d b/l3d index 7aa4d26df891615e0aa5fff5dd290e5b0ab03e02..50357a6952bb42db6a68a860a66bb6fe448588c9 100755 --- a/l3d +++ b/l3d @@ -1,53 +1,36 @@ #!/usr/bin/env bash -if [[ "$1" == "help" ]]; then +function help { echo "L3D - LakeDropsDrupalDev" echo "=========================" echo "" echo "Version: 1.3.0" echo "Info and support: https://gitlab.lakedrops.com/docker/l3d" - exit 0 -fi + echo "" + echo "Usage:" + echo " l3d [ help | selfupdate | update | PROJECTNAME]" + echo "" + echo "" +} -if [[ "$1" == "selfupdate" ]]; then +function selfupdate { DEST=$(which l3d) WGET=$(which wget) CURL=$(which curl) if [[ -n "$WGET" ]]; then - sudo wget -O $DEST https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d + sudo wget -O $DEST https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d > /dev/null 2>&1 elif [[ -n "$CURL" ]]; then - sudo curl -o $DEST https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d + sudo curl -o $DEST https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d > /dev/null 2>&1 else echo "Could't find wget or curl to perform the update!" exit 1 fi sudo chmod +x $DEST echo "Self update succeeded!" - exit 0 -fi - -export $(cat .env | xargs) -if [[ "${PHP_VERSION}" == "" ]]; then - while true; do - read -p "Which PHP version is your project using? " PHP_VERSION - case ${PHP_VERSION} in - 7.0 ) break;; - 7.1 ) break;; - 7.2 ) break;; - - * ) echo "Version not supported.";; - esac - done - echo "PHP_VERSION=${PHP_VERSION}" >>.env -fi -if [[ "${COMPOSE_PROJECT_NAME}" == "" ]]; then - read -p "Name your project (used as subdomain): " COMPOSE_PROJECT_NAME - echo "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" >>.env -fi - -ID=$(docker container ls -q -f name=${COMPOSE_PROJECT_NAME}_l3d) +} -if [[ "$1" == "update" ]]; then +function update { + getenv IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d:php-${PHP_VERSION}) echo "Updating the image ..." STATUS=$(docker pull registry.lakedrops.com/docker/l3d:php-${PHP_VERSION}) @@ -68,23 +51,81 @@ if [[ "$1" == "update" ]]; then done fi fi -fi +} + +function getenv { + if [[ -f ".env" ]]; then + export $(cat .env | xargs) > /dev/null 2>&1 + fi + if [[ "${PHP_VERSION}" == "" ]]; then + while true; do + read -p "Which PHP version is your project using? " PHP_VERSION + case ${PHP_VERSION} in + 7.0 ) break;; + 7.1 ) break;; + 7.2 ) break;; + + * ) echo "Version not supported.";; + esac + done + echo "PHP_VERSION=${PHP_VERSION}" >>.env + fi + if [[ "${COMPOSE_PROJECT_NAME}" == "" ]]; then + read -p "Name your project (used as subdomain): " COMPOSE_PROJECT_NAME + echo "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" >>.env + fi +} -if [[ -n "$ID" ]]; then - docker start ${COMPOSE_PROJECT_NAME}_l3d -else - docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \ - --hostname ${COMPOSE_PROJECT_NAME}-l3d \ - --env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME} \ - --env SSH_AUTH_SOCK=/ssh-agent \ - --env-file ${PWD}/.env \ - --volume /var/run/docker.sock:/var/run/docker.sock \ - --volume ${PWD}:/drupal \ - --volume ${SSH_AUTH_SOCK}:/ssh-agent \ - --volume ${HOME}/.traefik:/root/.traefik \ - --volume ${HOME}/.gitconfig:/root/.gitconfig \ - --workdir /drupal \ - --restart unless-stopped \ - registry.lakedrops.com/docker/l3d:php-${PHP_VERSION} -fi -docker exec -it ${COMPOSE_PROJECT_NAME}_l3d /usr/bin/fish +function start { + if [[ -n "${COMPOSE_PROJECT_NAME}" ]]; then + ID=$(docker container ls -q -f name=${COMPOSE_PROJECT_NAME}_l3d) + + if [[ -n "$ID" ]]; then + docker start ${COMPOSE_PROJECT_NAME}_l3d + else + docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \ + --hostname ${COMPOSE_PROJECT_NAME}-l3d \ + --env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME} \ + --env SSH_AUTH_SOCK=/ssh-agent \ + --env-file ${PWD}/.env \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + --volume ${PWD}:/drupal \ + --volume ${SSH_AUTH_SOCK}:/ssh-agent \ + --volume ${HOME}/.traefik:/root/.traefik \ + --volume ${HOME}/.gitconfig:/root/.gitconfig \ + --workdir /drupal \ + --restart unless-stopped \ + registry.lakedrops.com/docker/l3d:php-${PHP_VERSION} + fi + docker exec -it ${COMPOSE_PROJECT_NAME}_l3d /usr/bin/fish + fi +} + +COMPOSE_PROJECT_NAME= +case $1 in + + help ) + help + ;; + + selfupdate ) + selfupdate + ;; + + update ) + update + start + ;; + + * ) + if [[ -n "$1" ]]; then + ID=$(docker container ls -q -f name=$1_l3d) + if [[ -n "${ID}" ]]; then + COMPOSE_PROJECT_NAME=$1 + fi + else + getenv + fi + start + ;; +esac