# Bash vychytávky

  • stažení db ze serveru
  • zkrácený výpis dc logs

.bash_aliases

# docker compose shorthand
alias dc='docker-compose'

# show docker-compose logs with --follow
alias dclogs='docker-compose logs --tail 200 -f'

# stop all docker containers
alias dc-stop='docker stop $(docker ps -q) 2> /dev/null'

### GIT helpers

# pull master and return to original branch
alias comp='git co master && git pull && git co -'

# checkout master and pull
alias comm='git co master && git pull'

# push force with lease
alias gpwl='git push origin HEAD --force-with-lease'

# serve current folder on port 8888
alias phps='echo http://$(hostname -I | cut -d" "" -f1):8888 && docker run -p=8888:8888 -v="$(pwd):/var/www/web/" docker.designeo.cz/designeo/php/7.4/dev:2.1 php -S 0.0.0.0:8888'

# list databases on server and download one
dsg() {
    dsg_db $@
}
dsg_db() {
    if [ "$#" -lt 1 ]; then
        echo "Usage:
  list databases on server:
    dsg_db <server>

  download db to file db.sql:
    dsg_db <server> <db_container_name>"

    elif [ "$#" -eq 1 ]; then
        # list databases on server
        _SERVER_NAME=$1
        ssh $1 docker ps --format '{{.Names}}' | grep __db | sort
    else
        _SERVER_NAME=$1
        _DB_IMAGE_NAME=$2
        _LOCAL_DB_DUMP_FILE=db.sql

        if [[ -d ./db ]]; then
            _LOCAL_DB_DUMP_FILE="db/${_LOCAL_DB_DUMP_FILE}"
        fi
        echo "Downloading db to ${_LOCAL_DB_DUMP_FILE}..."
        ssh $_SERVER_NAME docker exec -i $_DB_IMAGE_NAME dump db > "${_LOCAL_DB_DUMP_FILE}"
        _RETURN_CODE=$?
        if [[ $_RETURN_CODE -eq 0 ]]; then
            echo "DB downloaded to ${_LOCAL_DB_DUMP_FILE}"
        fi
    fi

    unset _SERVER_NAME
    unset _DB_IMAGE_NAME
    unset _LOCAL_DB_DUMP_FILE
    unset _RETURN_CODE
}

# PHP things

# clone designeo bundle - useful for bundle development
clone-bundle() {
    BUNDLE_NAME="$1"
    if [[ $BUNDLE_NAME == */ ]]; then 
        BUNDLE_NAME=${BUNDLE_NAME::-1} # strip ending slash
    fi

    rm -rf ./$1 &&  git clone git@git.designeo.cz:designeo/php-bundles/${BUNDLE_NAME}.git
}