]> git.nbdom.net Git - nb.git/commitdiff
docker
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Thu, 17 Nov 2016 22:39:30 +0000 (22:39 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Thu, 17 Nov 2016 22:39:30 +0000 (22:39 +0000)
etc/profile.d/docker.sh
etc/profile.d/mac.sh

index 0625c3653d6ae0683fa1a39531963fa54c1b114f..2747127bbc3395557b9f8d43a1fd47902b35808e 100644 (file)
@@ -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() {
index 4677b45ec64866795944124108dde5fa064427ae..86c5eac371be6b68c0556e1d49a3b02fb2ebc298 100644 (file)
@@ -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) ;;