diff options
author | Anas Nashif <anas.nashif@intel.com> | 2013-03-04 14:15:00 -0800 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2013-03-04 14:15:00 -0800 |
commit | 5b3cc324c7e10fe2cf4006ffca9e07a264d91aee (patch) | |
tree | 13de95028f846029ed2d9e58b3575f8c0d0f642c /scripts | |
parent | 207950403c8c9a7e921489b822e949ef13e1f5a4 (diff) | |
download | rpm-5b3cc324c7e10fe2cf4006ffca9e07a264d91aee.tar.gz rpm-5b3cc324c7e10fe2cf4006ffca9e07a264d91aee.tar.bz2 rpm-5b3cc324c7e10fe2cf4006ffca9e07a264d91aee.zip |
Use find-lang from opensuse
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/find-lang.sh | 127 |
1 files changed, 80 insertions, 47 deletions
diff --git a/scripts/find-lang.sh b/scripts/find-lang.sh index 2817c1c66..d0415975a 100755 --- a/scripts/find-lang.sh +++ b/scripts/find-lang.sh @@ -28,10 +28,10 @@ the top of the tree containing the files to be processed--should be PACKAGE_NAME is the %{name} of the package. This should also be the basename of the .mo files. the output is written to PACKAGE_NAME.lang unless \$3 is given in which case output is written -to \$3. +to \$3 (note that \$3 is appended to if given). Additional options: - --with-gnome find GNOME help files - --with-kde find KDE help files + --without-gnome do not find GNOME help files + --without-kde do not find KDE help files --with-qt find Qt translation files --with-man find localized man pages --all-name match all package/domain names @@ -54,14 +54,16 @@ else NAME=$1 fi shift -GNOME=# -KDE=# +GNOME= +KDE= QT=# MAN=# MO= MO_NAME=$NAME.lang ALL_NAME=# NO_ALL_NAME= +ONLY_C=# +NO_C=# while test $# -gt 0 ; do case "${1}" in @@ -73,6 +75,14 @@ while test $# -gt 0 ; do KDE= shift ;; + --without-gnome ) + GNOME=# + shift + ;; + --without-kde ) + KDE=# + shift + ;; --with-qt ) QT= shift @@ -90,6 +100,14 @@ while test $# -gt 0 ; do NO_ALL_NAME=# shift ;; + --with-only-C ) + ONLY_C= + shift + ;; + --without-C ) + NO_C= + shift + ;; * ) MO_NAME=${1} shift @@ -97,94 +115,98 @@ while test $# -gt 0 ; do esac done +if ! test -s $MO_NAME ; then + echo "%defattr (644, root, root, 755)" > $MO_NAME +fi + +MO_NAME_NEW=$MO_NAME.tmp.$$ +rm -f $MO_NAME_NEW + # remove languages we do not yet support - but give out statistics -find "$TOP_DIR/usr/share/locale/" -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/share/locale/'::; /^$/d' | while read dir; do +find $TOP_DIR/usr/share/locale/ -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/share/locale/'::; /^$/d' | while read dir; do if ! rpm -ql filesystem | egrep -q "/usr/share/locale/$dir"$; then find $TOP_DIR/usr/share/locale/$dir -name *.mo | sed 's:'"$TOP_DIR"'::' | while read file; do - echo -n "removing translation $file: " - msgunfmt "$TOP_DIR/$file" | msgfmt --statistics -o /dev/null - + echo -n "removing translation $file: " + msgunfmt "$TOP_DIR/$file" | msgfmt --statistics -o /dev/null - done rm -rf $TOP_DIR/usr/share/locale/$dir fi done -find $TOP_DIR/usr/share/help/ -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/share/help/'::; /^$/d' | while read dir; do - if ! rpm -ql filesystem | egrep -q "/usr/share/help/$dir"$; then - echo "removing help translation /usr/share/help/$dir" - rm -rf $TOP_DIR/usr/share/help/$dir - fi -done -find "$TOP_DIR" -type f -o -type l|sed ' +find $TOP_DIR -type f -o -type l|sed ' s:'"$TOP_DIR"':: '"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3: '"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3: s:^\([^%].*\):: +'"$ONLY_C"'/%lang(C)/!d +'"$NO_C"'/%lang(C)/d s:%lang(C) :: -/^$/d' > $MO_NAME - -find "$TOP_DIR" -type d|sed ' -s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/'"$NAME"'\)$:%lang(\2) %doc \1\2\3\4/: -'"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3\4/: -s:^\([^%].*\):: -s:%lang(C) :: -/^$/d' >> $MO_NAME +/^$/d' >> $MO_NAME_NEW -find "$TOP_DIR" -type d|sed ' +find $TOP_DIR -type d|sed ' s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%dir \1: +'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%lang(C) %dir %doc \1: '"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'/[a-zA-Z0-9.\_\-]/.\+\):: -'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) \1\2: -'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+$\):%dir \1: +'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) %doc \1\2: +'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+$\):%lang(C) %dir %doc \1: '"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]/.\+\):: -'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) \1\2: +'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) %doc \1\2: s:%lang(.*) .*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*:: s:^\([^%].*\):: +'"$ONLY_C"'/%lang(C)/!d +'"$NO_C"'/%lang(C)/d s:%lang(C) :: -/^$/d' >> $MO_NAME +/^$/d' >> $MO_NAME_NEW -find "$TOP_DIR" -type d|sed ' +find $TOP_DIR -type d|sed ' s:'"$TOP_DIR"':: -'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'$\):%dir \1: -'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+$\):%dir \1: +'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'$\):%lang(C) %dir \1: +'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+$\):%lang(C) %dir \1: s:^\([^%].*\):: -/^$/d' >> $MO_NAME +s:%lang(C) :: +/^$/d' >> $MO_NAME_NEW -find "$TOP_DIR" -type f|sed ' +find $TOP_DIR -type f|sed ' s:'"$TOP_DIR"':: '"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'/'"$NAME"'-\([^/.]\+\)\.omf\):%lang(\2) \1: '"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1: s:^[^%].*:: +'"$ONLY_C"'/%lang(C)/!d +'"$NO_C"'/%lang(C)/d s:%lang(C) :: -/^$/d' >> $MO_NAME +/^$/d' >> $MO_NAME_NEW KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null` if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then -find "$TOP_DIR$KDE3_HTML" -type d|sed ' +find $TOP_DIR$KDE3_HTML -type d|sed ' s:'"$TOP_DIR"':: '"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\):: '"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\):: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: s:^\([^%].*\):: +'"$ONLY_C"'/%lang(C)/!d +'"$NO_C"'/%lang(C)/d s:%lang(C) :: -/^$/d' >> $MO_NAME +/^$/d' >> $MO_NAME_NEW fi KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null` if [ x"$KDE4_HTML" != x -a -d "$TOP_DIR$KDE4_HTML" ]; then -find "$TOP_DIR$KDE4_HTML" -type d|sed ' +find $TOP_DIR$KDE4_HTML -type d|sed ' s:'"$TOP_DIR"':: '"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\):: '"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\):: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: s:^\([^%].*\):: +'"$ONLY_C"'/%lang(C)/!d +'"$NO_C"'/%lang(C)/d s:%lang(C) :: -/^$/d' >> $MO_NAME +/^$/d' >> $MO_NAME_NEW fi -find "$TOP_DIR" -type f -o -type l|sed ' +find $TOP_DIR -type f -o -type l|sed ' s:'"$TOP_DIR"':: '"$NO_ALL_NAME$QT"'s:\(.*/'"$NAME"'_\([a-zA-Z]\{2\}\([_@].*\)\?\)\.qm$\):%lang(\2) \1: '"$ALL_NAME$QT"'s:\(.*/[^/_]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1: @@ -192,26 +214,37 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1: '"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1: s:^[^%].*:: +'"$ONLY_C"'/%lang(C)/!d +'"$NO_C"'/%lang(C)/d s:%lang(C) :: -/^$/d' >> $MO_NAME +/^$/d' >> $MO_NAME_NEW -find "$TOP_DIR" -type d|sed ' +find $TOP_DIR -type d|sed ' s:'"$TOP_DIR"':: '"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/\):: '"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*: s:^\([^%].*\):: +'"$ONLY_C"'/%lang(C)/!d +'"$NO_C"'/%lang(C)/d s:%lang(C) :: -/^$/d' >> $MO_NAME +/^$/d' >> $MO_NAME_NEW -find "$TOP_DIR" -type f -o -type l|sed ' +find $TOP_DIR -type f -o -type l|sed ' s:'"$TOP_DIR"':: '"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*: s:^\([^%].*\):: +'"$ONLY_C"'/%lang(C)/!d +'"$NO_C"'/%lang(C)/d s:%lang(C) :: -/^$/d' >> $MO_NAME +/^$/d' >> $MO_NAME_NEW -if ! grep -q / $MO_NAME; then +if ! grep -q / $MO_NAME_NEW; then echo "No translations found for ${NAME} in ${TOP_DIR}" + rm -f $MO_NAME_NEW exit 1 fi + +sort -u $MO_NAME_NEW >> $MO_NAME +rm -f $MO_NAME_NEW + exit 0 |