+#echo $BASH_SOURCE
#
# Avoid infinit loop. Eg: profile -> .bashrc -> profile
#
#
dir=''
#NB_DEBUG="echo $0:"
+#[ "${BASH-no}" != "no" ] && echo Is BASH
case "$BASH_SOURCE" in
*/*) dir="${BASH_SOURCE%/*}";;
*)
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
}
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"
}
-which puppet > /dev/null || return 0
puppet2yaml() {
perl -pe '
s/^(.*)\{(.*?:)\s*/$1:\n $2\n/;
' $@
}
+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