From 2a136f1af039088491ddb805a3ccaf4167dafc38 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Thu, 17 Nov 2016 22:39:30 +0000 Subject: [PATCH] docker --- etc/profile.d/docker.sh | 91 +++++++++++++++++++++++++++++++++-------- etc/profile.d/mac.sh | 19 ++++++++- 2 files changed, 92 insertions(+), 18 deletions(-) diff --git a/etc/profile.d/docker.sh b/etc/profile.d/docker.sh index 0625c365..2747127b 100644 --- a/etc/profile.d/docker.sh +++ b/etc/profile.d/docker.sh @@ -3,9 +3,10 @@ if [ -z "$MYVIMRC" ]; then [ -z "$DOCKER_CERT_PATH" -o ! -e "$DOCKER_CERT_PATH" ] && which docker-machine>/dev/null && docker-machine ls -q 2>/dev/null |grep -qFm1 docker && eval "$(docker-machine env docker)" 2>/dev/null fi -[ -z "$DOCKER_DIR" -a -d "~nico/owncloud/Docker" ] && DOCKER_DIR="~nico/owncloud/Docker" +export DOCKER_IP=$(perl -e '$ENV{DOCKER_HOST} =~ /\D(\d+\.\d+\.\d+\.\d+)\D/&&print $1') + +[ -d ~/ownCloud/Docker ] && export DOCKER_HOME=~/ownCloud/Docker [ -z "$DOCKER_HUB" ] && DOCKER_HUB="" -DOCKER_IP=$(perl -e '$ENV{DOCKER_HOST} =~ /\D(\d+\.\d+\.\d+\.\d+)\D/&&print $1') docker_build() { @@ -15,12 +16,14 @@ docker_build() { if [ -n "$1" ]; then - [ -z "$DOCKER_DIR" -o -d "$1" ] || cd "$DOCKER_DIR" - if [ -d "$1" ]; then - pwd=$(pwd) + pwd=$(pwd); cd "$1" || return docker_name=$(basename "$(pwd)") + elif [ -n "$DOCKER_HOME" ]; then + pwd=$(pwd); + cd "$DOCKER_HOME" || return + docker_name=$(basename "$(pwd)") fi shift @@ -57,20 +60,74 @@ docker_build() { return $ex } +# NB 17.11.16 __docker_cd() { +# NB 17.11.16 eval $(_docker_cd "$@") +# NB 17.11.16 echo +# NB 17.11.16 echo "docker_name=$docker_name" +# NB 17.11.16 echo "docker_dir=$docker_dir" +# NB 17.11.16 echo "pwd=$pwd" +# NB 17.11.16 echo +# NB 17.11.16 echo "BACK:"; _docker_cd -back +# NB 17.11.16 eval $(_docker_cd -back) +# NB 17.11.16 echo +# NB 17.11.16 echo "PWD" +# NB 17.11.16 pwd +# NB 17.11.16 } + +_docker_cd() { + case "$1" in + -back) + echo '[ -n "$pwd" ] && cd "$pwd";' + ;; + + *) + + local cd + echo 'local docker_name="'$1'";' + echo 'local pwd;' + echo 'local docker_dir="'$(pwd)'";' + + if [ -n "$1" ]; then + echo 'shift;' + + if [ -d "$1" ]; then + cd="$1" + + elif [ -n "$DOCKER_HOME" -a -d "$DOCKER_HOME/$1" ]; then + cd="$DOCKER_HOME/$1" + + fi + + else + return + echo 'return 1;' + + fi + + local docker_name + #[ -n "$ + if [ -n "$cd" ]; then + echo "$cd `pwd`" 1>&2 + local pwd=`pwd` + + ! cd "$cd" echo 'return 1;' && return 1 + echo 'pwd="'$(pwd)'";' + echo 'docker_dir="'$cd'";' + echo 'cd "'$cd'" || return;' + + docker_name=$(basename "$(pwd)") + [ -z "$docker_name" ] && docker_name="$cd" + echo 'docker_name="'$docker_name'";' + fi + + ;; + esac +} + docker_run() { shell_help "Usage: $FUNCNAME [DIR_DOCKERFILE]" "$@" && return - local docker_name - local pwd - if [ -n "$1" ]; then - if [ -d "$1" ]; then - docker_name=$(basename $1) && pwd=`pwd` && cd "$1" - else - docker_name="$1" - fi - shift - fi - + eval $(_docker_cd "$@") [ -z "$docker_name" -a -e "Dockerfile" ] && docker_name=$(basename `pwd`) #[ -z "$docker_name" ] && docker_name=$(basename `pwd`) @@ -85,7 +142,7 @@ docker_run() { fi - [ -n "$pwd" ] && cd "$pwd" + eval $(_docker_cd -back) } docker_clean() { diff --git a/etc/profile.d/mac.sh b/etc/profile.d/mac.sh index 4677b45e..86c5eac3 100644 --- a/etc/profile.d/mac.sh +++ b/etc/profile.d/mac.sh @@ -1,4 +1,12 @@ +############################################################################## +# +# Requirement: +# - functions: getexp_url shell_help_noarg +# +# # See: http://www.infoworld.com/article/2614879/mac-os-x/top-20-os-x-command-line-secrets-for-power-users.html +# +############################################################################## mac_pbcopy() { local host="$1"; shift cat $@ | ssh -q $host -o 'ForwardAgent yes' 'cat|pbcopy' @@ -106,7 +114,16 @@ mac_install() { # Aliases case "$prg" in - docker) [ "$(sysctl -n kern.hv_support 2>/dev/null)" = "0" ] && echo "Docker not compatible. \`See sysctl -n kern.hv_support\`" && return; prg="https://download.docker.com/mac/stable/Docker.dmg" ;; + docker-compose) + sudo curl -L "https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + return + ;; + docker) + [ "$(sysctl -n kern.hv_support 2>/dev/null)" = "0" ] \ + && echo "Docker not compatible. \`See sysctl -n kern.hv_support\`" \ + && return; prg="https://download.docker.com/mac/stable/Docker.dmg" + ;; xcode) prg="http://adcdownload.apple.com/Developer_Tools/Command_Line_Tools_macOS_10.12_for_Xcode_8.1/Command_Line_Tools_macOS_10.12_for_Xcode_8.1.dmg" ;; virtualbox) prg=$(getexp_url 'https?://download.virtualbox.org/virtualbox/[^"\s]+dmg' https://www.virtualbox.org/wiki/Downloads) ;; macport) prg=$(getexp_url 'https?://distfiles.macports.org/MacPorts/MacPorts[^"\s]+pkg' https://www.macports.org/install.php) ;; -- 2.47.3