SPECS: man.spec - use case...esac and get rid of sed, basename - m...
sparky
sparky at pld-linux.org
Tue Nov 7 05:10:07 CET 2006
Author: sparky Date: Tue Nov 7 04:10:07 2006 GMT
Module: SPECS Tag: HEAD
---- Log message:
- use case...esac and get rid of sed, basename - much faster and readable
---- Files affected:
SPECS:
man.spec (1.133 -> 1.134)
---- Diffs:
================================================================
Index: SPECS/man.spec
diff -u SPECS/man.spec:1.133 SPECS/man.spec:1.134
--- SPECS/man.spec:1.133 Tue Nov 7 04:19:20 2006
+++ SPECS/man.spec Tue Nov 7 05:10:02 2006
@@ -235,30 +235,33 @@
done
for src in $(find msgs -type f -name 'mess.[a-z][a-z]'); do
- lang=$(echo ${src} | sed -r 's;.*([a-z]{2})$;\1;')
- if [ ${lang} = ja ]; then charset=euc-jp
- elif [ ${lang} = ko ]; then charset=euc-kr
- elif [ ${lang} = ru ]; then charset=koi8-r
- elif [ ${lang} = da ]; then charset=iso-8859-1
- elif [ ${lang} = de ]; then charset=iso-8859-1
- elif [ ${lang} = en ]; then charset=iso-8859-1
- elif [ ${lang} = es ]; then charset=iso-8859-1
- elif [ ${lang} = fi ]; then charset=iso-8859-1
- elif [ ${lang} = fr ]; then charset=iso-8859-1
- elif [ ${lang} = it ]; then charset=iso-8859-1
- elif [ ${lang} = pt ]; then charset=iso-8859-1
- elif [ ${lang} = nl ]; then charset=iso-8859-1
- elif [ ${lang} = cs ]; then charset=iso-8859-2
- elif [ ${lang} = hr ]; then charset=iso-8859-2
- elif [ ${lang} = pl ]; then charset=iso-8859-2
- elif [ ${lang} = ro ]; then charset=iso-8859-2
- elif [ ${lang} = sl ]; then charset=iso-8859-2
- elif [ ${lang} = bg ]; then charset=cp1251
- elif [ ${lang} = el ]; then charset=iso-8859-7
- else
- echo === LANGUAGE ${lang}: MUST SPECIFY CHARSET/ENCODING
- exit 1
- fi
+ lang=${src##*.}
+ case ${lang} in
+ ja) charset=euc-jp ;;
+ ko) charset=euc-kr ;;
+ ru) charset=koi8-r ;;
+ da) charset=iso-8859-1 ;;
+ de) charset=iso-8859-1 ;;
+ en) charset=iso-8859-1 ;;
+ es) charset=iso-8859-1 ;;
+ fi) charset=iso-8859-1 ;;
+ fr) charset=iso-8859-1 ;;
+ it) charset=iso-8859-1 ;;
+ pt) charset=iso-8859-1 ;;
+ nl) charset=iso-8859-1 ;;
+ cs) charset=iso-8859-2 ;;
+ hr) charset=iso-8859-2 ;;
+ pl) charset=iso-8859-2 ;;
+ ro) charset=iso-8859-2 ;;
+ sl) charset=iso-8859-2 ;;
+ hu) charset=iso-8859-2 ;;
+ bg) charset=cp1251 ;;
+ el) charset=iso-8859-7 ;;
+ *)
+ echo "=== LANGUAGE ${lang}: MUST SPECIFY CHARSET/ENCODING"
+ exit 1
+ ;;
+ esac
iconv -t utf-8 -f ${charset} -o ${src}.utf ${src} && mv ${src}.utf ${src}
done
@@ -316,42 +319,48 @@
%{__make} -C man2html install-scripts \
PREFIX="$RPM_BUILD_ROOT"
+dir=$RPM_BUILD_ROOT%{_mandir}
for src in $(find man -type f -name '*.[1-9n]'); do
- lang=$(echo ${src} | sed -r 's;.*/([a-z]{2})/.*;\1;')
- page=$(basename ${src})
- sect=$(echo ${page} | sed -r 's;.*([1-9n])$;man\1;')
- dir=${RPM_BUILD_ROOT}%{_mandir}
- if [ ${lang} = ja ]; then charset=euc-jp
- elif [ ${lang} = ko ]; then charset=euc-kr
- elif [ ${lang} = da ]; then charset=iso-8859-1
- elif [ ${lang} = de ]; then charset=iso-8859-1
- elif [ ${lang} = en ]; then charset=iso-8859-1
- elif [ ${lang} = es ]; then charset=iso-8859-1
- elif [ ${lang} = fi ]; then charset=iso-8859-1
- elif [ ${lang} = fr ]; then charset=iso-8859-1
- elif [ ${lang} = it ]; then charset=iso-8859-1
- elif [ ${lang} = pt ]; then charset=iso-8859-1
- elif [ ${lang} = nl ]; then charset=iso-8859-1
- elif [ ${lang} = cs ]; then charset=iso-8859-2
- elif [ ${lang} = hr ]; then charset=iso-8859-2
- elif [ ${lang} = pl ]; then charset=iso-8859-2
- elif [ ${lang} = ro ]; then charset=iso-8859-2
- elif [ ${lang} = sl ]; then charset=iso-8859-2
- elif [ ${lang} = hu ]; then charset=iso-8859-2
- elif [ ${lang} = bg ]; then charset=cp1251
- elif [ ${lang} = el ]; then charset=iso-8859-7
- else
- echo === LANGUAGE ${lang}: MUST SPECIFY CHARSET/ENCODING
- exit 1
- fi
- mkdir -p ${dir}/${lang}/${sect}
- iconv -t utf-8 -f ${charset} -o ${dir}/${lang}/${sect}/${page} ${src}
-
- # ensure POSIX/C locale only has ASCII subset and no latin-1
- if [ ${lang} = en ]; then
- mkdir -p ${dir}/${sect}
- iconv -t ascii//translit -f ${charset} -o ${dir}/${sect}/${page} ${src}
- fi
+ # src is like: man/nl/man.config.5 or man/pl/man1/man2html.1
+ noman=${src#*/}
+ lang=${noman%%%%/*}
+ page=${src##*/}
+ sect=man${src##*.}
+
+ case ${lang} in
+ ja) charset=euc-jp ;;
+ ko) charset=euc-kr ;;
+ ru) charset=koi8-r ;;
+ da) charset=iso-8859-1 ;;
+ de) charset=iso-8859-1 ;;
+ en) charset=iso-8859-1 ;;
+ es) charset=iso-8859-1 ;;
+ fi) charset=iso-8859-1 ;;
+ fr) charset=iso-8859-1 ;;
+ it) charset=iso-8859-1 ;;
+ pt) charset=iso-8859-1 ;;
+ nl) charset=iso-8859-1 ;;
+ cs) charset=iso-8859-2 ;;
+ hr) charset=iso-8859-2 ;;
+ pl) charset=iso-8859-2 ;;
+ ro) charset=iso-8859-2 ;;
+ sl) charset=iso-8859-2 ;;
+ hu) charset=iso-8859-2 ;;
+ bg) charset=cp1251 ;;
+ el) charset=iso-8859-7 ;;
+ *)
+ echo "=== LANGUAGE ${lang}: MUST SPECIFY CHARSET/ENCODING"
+ exit 1
+ ;;
+ esac
+ mkdir -p ${dir}/${lang}/${sect}
+ iconv -t utf-8 -f ${charset} -o ${dir}/${lang}/${sect}/${page} ${src}
+
+ # ensure POSIX/C locale only has ASCII subset and no latin-1
+ if [ ${lang} = en ]; then
+ mkdir -p ${dir}/${sect}
+ iconv -t ascii//translit -f ${charset} -o ${dir}/${sect}/${page} ${src}
+ fi
done
rm -rf $RPM_BUILD_ROOT%{_mandir}/en
@@ -577,6 +586,9 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.134 2006/11/07 04:10:02 sparky
+- use case...esac and get rid of sed, basename - much faster and readable
+
Revision 1.133 2006/11/07 03:19:20 sparky
- man-sec.patch obsoleted long time ago
================================================================
---- CVS-web:
http://cvs.pld-linux.org/SPECS/man.spec?r1=1.133&r2=1.134&f=u
More information about the pld-cvs-commit
mailing list