From 552527d17d00400e62cc6a748ca473dbdec9c0a6 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Sat, 12 Nov 2016 20:36:01 +0000 Subject: [PATCH] profile.d --- etc/profile.d/docker.sh | 54 ++++++++++++++++++++++++++++++++++++++++ etc/profile.d/git.sh | 1 + etc/profile.d/openssl.sh | 1 + etc/profile.d/pg.sh | 1 + etc/profile.d/php.sh | 4 +-- etc/profile.d/puppet.sh | 1 + 6 files changed, 60 insertions(+), 2 deletions(-) diff --git a/etc/profile.d/docker.sh b/etc/profile.d/docker.sh index 2b6c05e1..afab6f55 100644 --- a/etc/profile.d/docker.sh +++ b/etc/profile.d/docker.sh @@ -1,7 +1,61 @@ +which docker > /dev/null || return 0 + 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 +_docker_name() { + if [ -n "$1" -a -e "$1" ]; then + cd "$1" 1>&2 || return 1 + shift + elif [ -e Dockerfile ]; then + [ 1 = 1 ] + fi + basename $(pwd) +} + +docker_build() { + local docker_name=$(_docker_name "$1") || return; shift + [ -e Dockerfile ] || exec echo "Dockerfile missing in $(pwd)" 1>&2 + + if [ -n "$(docker images -q $docker_name 2>/dev/null)" ]; then + echo "$docker_name already build." + return 1 + + else + perl -ne '/^\s*\#\s*DOCKER_BUILD\s*(.*?)$/ and system "$1"' Dockerfile + docker build --rm --force-rm=true -t $docker_name . + + if [ "$?" != 0 ]; then + docker rmi -f $(docker images -qf "dangling=true") + echo "Review your Docker file" + return 1 + fi + fi + + return 0 +} + +docker_run() { + local docker_name=$(_docker_name "$1") || return + [ -n "$1" -a -d "$1" ] && cd "$1" + shift + perl -ne '/^\s*\#\s*DOCKER_RUN\s*(.*?)$/ and $RUN=1 and system "$1"; END{exit ($RUN ? 0 : 1)}' Dockerfile && return + docker run --rm -it --name $docker_name --hostname $docker_name $@ $docker_name +} + +docker_clean() { + local images=$(docker images -qf "dangling=true") + [ -n "$images" ] && docker rmi -f $images | sed "s/^/images /" + + local volumes=$(docker volume ls -qf dangling=true) + [ -n "$volumes" ] && docker volume rm $volumes | sed "s/^/volumes /" + + local containers=$(docker ps -f status=dead -f status=exited -f status=created -aq) + [ -n "$containers" ] && docker rm -vf $containers | sed "s/^/containers /" +} + +#[ -n "$containers" -a -n "$volumes" -a -n "$images" ] # NB 12.11.16 docker-image2dockerfile() { # NB 12.11.16 docker history --no-trunc "$1" | \ # NB 12.11.16 sed -n -e 's,.*/bin/sh -c #(nop) \(MAINTAINER .*[^ ]\) *0 B,\1,p' | \ diff --git a/etc/profile.d/git.sh b/etc/profile.d/git.sh index ebc65ca4..a3c350e2 100644 --- a/etc/profile.d/git.sh +++ b/etc/profile.d/git.sh @@ -2,6 +2,7 @@ # Git # [ -z "$GIT_REPO" ] && GIT_REPO='git@git.nbdom.net' +which git > /dev/null || return 0 alias git_grep="git grep --color=auto" alias git_ls_tree="git ls-tree --full-tree -r HEAD" diff --git a/etc/profile.d/openssl.sh b/etc/profile.d/openssl.sh index 62929a1c..ceed3f4a 100644 --- a/etc/profile.d/openssl.sh +++ b/etc/profile.d/openssl.sh @@ -1,3 +1,4 @@ +which openssl > /dev/null || return 0 # NB 17.10.16 ssl_cert_self_signed() { # NB 17.10.16 shell_help_noarg "Usage: $FUNCNAME [CERT_NAME]. Generate a self signed ssl pem certificate files." "$@" && return 1 # NB 17.10.16 declare name="$1"; shift diff --git a/etc/profile.d/pg.sh b/etc/profile.d/pg.sh index ecf2ea59..015342f1 100644 --- a/etc/profile.d/pg.sh +++ b/etc/profile.d/pg.sh @@ -1,3 +1,4 @@ +which psql > /dev/null || return 0 pg_count() { declare dbs pwd tables length diff --git a/etc/profile.d/php.sh b/etc/profile.d/php.sh index 71845bb7..da80ba79 100644 --- a/etc/profile.d/php.sh +++ b/etc/profile.d/php.sh @@ -7,5 +7,5 @@ php425() { perl -e '$_=join("",<>); s/\barray\(((?:[^()]++|\((?R)\))*)\)/[$1]/sg; print $_; ' $@ } -function php_check() { php5 --define error_reporting=22519 --define display_errors=1 --define log_errors=1 --define html_errors=0 $@; } - +which php > /dev/null || return 0 +function php_check() { php --define error_reporting=22519 --define display_errors=1 --define log_errors=1 --define html_errors=0 $@; } diff --git a/etc/profile.d/puppet.sh b/etc/profile.d/puppet.sh index 16ae15b4..fd3ea7e3 100644 --- a/etc/profile.d/puppet.sh +++ b/etc/profile.d/puppet.sh @@ -1,3 +1,4 @@ +which puppet > /dev/null || return 0 puppet2yaml() { perl -pe ' s/^(.*)\{(.*?:)\s*/$1:\n $2\n/; -- 2.47.3