#!/bin/bash -l
-echo DEBUG: pre-commit $* 1>&2
+# NB 12.03.19 echo DEBUG: pre-commit $* 1>&2
+# NB 12.03.19 [ -d www/dbq/ ] && (cd www/dbq/ && minify_dir) | while read -r f; do
+# NB 12.03.19 echo "Minify $f"
+# NB 12.03.19 git add "$f"
+# NB 12.03.19 done
-[ -d www/dbq/ ] && (cd www/dbq/ && minify_dir) | while read -r f; do
- echo "Minify $f"
- git add "$f"
-done
+echo "Run $0"
+
+if which minify > /dev/null; then
+ MINIFY=""
+ [ -z "$MINIFY" ] && minify --help | grep -q '\-\-css' && MINIFY="ext"
+ [ -z "$MINIFY" ] && minify --help | grep -q '\-\-output' && MINIFY="out"
+ [ -z "$MINIFY" ] || git status --porcelain | sed 's/^ . //' | while read file; do
+ ext=""
+ case "$file" in
+ *.min.*) continue ;;
+ *.css) ext=css ;;
+ *.js) ext=js ;;
+ *) continue;
+ esac
+ min="$(echo "$file" | sed -E 's/\.([^\.]+)$/.min.\1/')"
+ [ -w "$min" ] || continue
+
+ if [ "$MINIFY" = "ext" ]; then
+ #echo "minify --$ext < "$file" > "$min.tmp""
+ minify --$ext < "$file" > "$min.tmp"
+ elif [ "$MINIFY" = "out" ]; then
+ #echo "minify "$file" --output "$min.tmp""
+ minify "$file" --output "$min.tmp" > /dev/null
+ fi
+
+ if [ "$?" = "0" ]; then
+ #echo "cat "$min.tmp" > "$min""
+ cat "$min.tmp" > "$min"
+ fi
+
+ rm "$min.tmp"
+
+ done
+fi
true
}
minify_dir() {
- local usage='minify_dir find and minify js and css files into current directory.'
+ local usage='minify_dir [DIR]. find and minify js and css files into current directory.'
+ local dir="${1:-$PWD}"
local tmp="/tmp/minify_dir.$$"
+ #local minify_version="$(minify --version|sed 's/[^0-9]//g; s/^0*//')"
local minify="nb-read.php minify_"
- which minify &> /dev/null && minify="minify --"
+ ! which minify >/dev/null && return 1 #echo "minify is missing, pealse install it !" 1>&2 && return 1
+ ! minify --help | grep '\-\-css' -q && return 1 #echo "Wrong version of minify, options --[js,css] are missing !" 1>&2 && return 1
+ minify="minify --"
+# NB 12.03.19 which minify &> /dev/null && minify="minify --"
- for f in $(find `pwd` -type f \( -name '*.css' -o -name '*.js' \) -a -not -name '*.min.*'); do
+ local f
+ for f in $(find "$dir/" -type f \( -name '*.css' -o -name '*.js' \) -a -not -name '*.min.*'); do
min=$(echo "$f" | sed 's/\./.min./')
ext="${f##*.}"