From 6d3ca12177a3e865c45878767e48e2ff27fd1d3d Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Mon, 14 Nov 2016 22:44:00 +0000 Subject: [PATCH] docker --- etc/profile | 2 ++ etc/profile.d/docker.sh | 25 +++++++++++++++++++------ etc/profile.d/envs | 1 + etc/profile.d/puppet.sh | 34 +++++++++++++++++++++++++++++++++- 4 files changed, 55 insertions(+), 7 deletions(-) diff --git a/etc/profile b/etc/profile index 7b2a8122..aaf44e2d 100755 --- a/etc/profile +++ b/etc/profile @@ -1,3 +1,4 @@ +#echo $BASH_SOURCE # # Avoid infinit loop. Eg: profile -> .bashrc -> profile # @@ -20,6 +21,7 @@ export NB_LOOP=1 # dir='' #NB_DEBUG="echo $0:" +#[ "${BASH-no}" != "no" ] && echo Is BASH case "$BASH_SOURCE" in */*) dir="${BASH_SOURCE%/*}";; *) diff --git a/etc/profile.d/docker.sh b/etc/profile.d/docker.sh index efbd1376..5c827889 100644 --- a/etc/profile.d/docker.sh +++ b/etc/profile.d/docker.sh @@ -25,6 +25,7 @@ docker_build() { else perl -ne '/^\s*\#\s*DOCKER_BUILD\s*(.*?)$/ and system "$1"' Dockerfile + echo $FUNCNAME: docker build --rm --force-rm=true -t $@ $docker_name . docker build --rm --force-rm=true -t $@ $docker_name . if [ "$?" != 0 ]; then @@ -39,17 +40,29 @@ docker_build() { } docker_run() { - shell_help_noarg "Usage: $FUNCNAME [DIR_DOCKERFILE]" "$@" && return + shell_help "Usage: $FUNCNAME [DIR_DOCKERFILE]" "$@" && return - local docker_name=$(basename `pwd`) - local pwd="" + local docker_name + local pwd if [ -n "$1" ]; then - [ -d "$1" ] && docker_name=$(basename $1) && pwd=`pwd` && cd "$1" + if [ -d "$1" ]; then + docker_name=$(basename $1) && pwd=`pwd` && cd "$1" + else + docker_name="$1" + fi shift fi + + [ -z "$docker_name" -a -e "Dockerfile" ] && docker_name=$(basename `pwd`) + #[ -z "$docker_name" ] && docker_name=$(basename `pwd`) + + [ -z "$(docker images -q "$docker_name")" ] && echo "$FUNCNAME: Can't find image $docker_name. Try docker_build $docker_name" 1>&2 && return + local opt - [ -z "$@" ] && opt=$(perl -ne '/^\s*\#\s*DOCKER_RUN\s*(.*?)$/&&print "$1 "' "Dockerfile" 2>/dev/null) - eval docker run --rm -it --name $docker_name --hostname $docker_name $opt$@ $docker_name + #[ -z "$*" ] && opt=$(perl -ne '/^\s*\#\s*DOCKER_RUN\s*(.*?)$/&&print qq"|$1 "|' "Dockerfile" 2>/dev/null) + [ -z "$*" ] && opt=$(echo "$(perl -ne '/^\s*\#\s*DOCKER_RUN\s*(.*?)$/&&print qq|$1 "|' Dockerfile 2>/dev/null)") + echo $FUNCNAME: docker run --rm -it --name $docker_name --hostname $docker_name $opt$@ $docker_name + docker run --rm -it --name $docker_name --hostname $docker_name $opt$@ $docker_name [ -n "$pwd" ] && cd "$pwd" } diff --git a/etc/profile.d/envs b/etc/profile.d/envs index 9c2fa1ad..eb5f1b4c 100644 --- a/etc/profile.d/envs +++ b/etc/profile.d/envs @@ -140,4 +140,5 @@ unset ls_opt ll_opt # # bye # +[ -n "$NB_DEBUG" ] && $NB_DEBUG "Color: $color_prompt, TERM=$TERM" unset color_prompt diff --git a/etc/profile.d/puppet.sh b/etc/profile.d/puppet.sh index fd3ea7e3..43a1afef 100644 --- a/etc/profile.d/puppet.sh +++ b/etc/profile.d/puppet.sh @@ -1,4 +1,3 @@ -which puppet > /dev/null || return 0 puppet2yaml() { perl -pe ' s/^(.*)\{(.*?:)\s*/$1:\n $2\n/; @@ -8,6 +7,39 @@ s/\s*\}\s*//; ' $@ } +puppet_align() { +perl -e ' +$q = chr(39); + +while (<>) { + # No quoted vars + s/"(\$)\{([\w_:]+)\}"/$1$2/; + s/"(\$[\w_:]+)"/$1/; + + # No double quote + s/"([_\w]+)?"/$q$1$q/; + + # No quoted boolean + s/[$q"](true|false)[$q"]/$1/; + + $len = $new if /(\S+)\s*=>/ and ($new = length($1))>$len; + push @l,$_; + +} + +END { for (@l) { + + if (@_ = /^(\s*)(.*?)\s*=>\s*(.*)\s*$/) { + printf "%s%-${len}s => %s\n", @_; + } else { + print $_; + } + +}} +' +} +which puppet > /dev/null || return 0 + puppet_upgrade_modules() { local m for m in $(puppet module list|perl -ne '/([\w-]+).*?v[\.\d]+/ and print "$1\n"'); do -- 2.47.3