luci-base: escape path strings and field parameter
[project/luci.git] / build / i18n-sync.sh
index 430e13f..d4f9666 100755 (executable)
@@ -1,25 +1,18 @@
 #!/bin/sh
 
-for m in */*/Makefile; do
-       if grep -qE '^PO *=' $m; then
-               p="${m%/Makefile}"
-               t="$(sed -ne 's/^PO *= *//p' $m)"
+[ -d ./build ] || {
+       echo "Execute as ./build/i18n-sync.sh" >&2
+       exit 1
+}
 
-               case "$t" in
-                       *\ *)
-                               echo "WARNING: Cannot handle $p" >&2
-                               continue
-                       ;;
-                       *base*)
-                               continue
-                       ;;
-               esac
+./build/mkbasepot.sh
 
-               if [ -f "po/templates/$t.pot" ]; then
-                       ./build/i18n-scan.pl "$p" > "po/templates/$t.pot"
-               fi
-       fi
-done
+find . -name '*.pot' -and -not -name base.pot -and -not -name rrdtool.pot | \
+       while read path; do
+               dir="${path%/po/templates/*}"
+               echo -n "Updating ${path#./} ... "
+               ./build/i18n-scan.pl "$dir" > "$path"
+               echo "done"
+       done
 
-./build/mkbasepot.sh
-./build/i18n-update.pl po
+./build/i18n-update.pl