Gentoo Archives: gentoo-commits

From: "Mike Frysinger (vapier)" <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in src/patchsets/glibc/extra/locale: locale-gen
Date: Sun, 20 Nov 2011 22:01:11
Message-Id: 20111120220100.CD2BA2004B@flycatcher.gentoo.org
1 vapier 11/11/20 22:01:00
2
3 Modified: locale-gen
4 Log:
5 simplify job handling a bit by always using it -- 1 job is simply a special case of N jobs
6
7 Revision Changes Path
8 1.31 src/patchsets/glibc/extra/locale/locale-gen
9
10 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/extra/locale/locale-gen?rev=1.31&view=markup
11 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/extra/locale/locale-gen?rev=1.31&content-type=text/plain
12 diff : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/extra/locale/locale-gen?r1=1.30&r2=1.31
13
14 Index: locale-gen
15 ===================================================================
16 RCS file: /var/cvsroot/gentoo/src/patchsets/glibc/extra/locale/locale-gen,v
17 retrieving revision 1.30
18 retrieving revision 1.31
19 diff -u -r1.30 -r1.31
20 --- locale-gen 15 Sep 2011 17:46:23 -0000 1.30
21 +++ locale-gen 20 Nov 2011 22:01:00 -0000 1.31
22 @@ -45,7 +45,7 @@
23 }
24 show_version() {
25 local b="(" a=")"
26 - local cvsver="$Revision: 1.30 $b $Date: 2011/09/15 17:46:23 $a"
27 + local cvsver="$Revision: 1.31 $b $Date: 2011/11/20 22:01:00 $a"
28 echo "locale-gen-${cvsver//: }"
29 exit 0
30 }
31 @@ -75,9 +75,9 @@
32 -A|--all) ALL=$1;;
33 -u|--update) UPDATE=$1;;
34 -G|--generate) shift; GENERATE=$1;;
35 - -j|--jobs) shift; JOBS_MAX=$(($1));;
36 - -j*) JOBS_MAX=$((${1#-j}));;
37 - -q|--quiet) ((++QUIET));;
38 + -j|--jobs) shift; JOBS_MAX=$(( $1 ));;
39 + -j*) : $(( JOBS_MAX = ${1#-j} ));;
40 + -q|--quiet) : $(( ++QUIET ));;
41 -x|--debug) SET_X="true";;
42 -V|--version) show_version;;
43 -h|--help) show_usage;;
44 @@ -250,83 +250,62 @@
45
46 eval declare -a locales_disp=(${locales_disp})
47 eval declare -a locales_to_generate=(${locales_to_generate})
48 -total=$((${#locales_to_generate[*]}/2))
49 +total=$(( ${#locales_to_generate[*]} / 2 ))
50
51 [[ ${QUIET} -eq 0 ]] && [[ -z ${JUST_LIST} ]] && \
52 einfo "Generating ${total} locales (this might take a while) with ${JOBS_MAX} jobs"
53
54 -ret=0
55 -cnt=0
56 -
57 if [[ -n ${UPDATE} ]] ; then
58 # normalize newlines into spaces
59 existing_locales=" $(echo $(locale -a 2>/dev/null)) "
60 fi
61
62 generate_locale() {
63 - local ret=0
64 local output=""
65
66 if [[ -z ${ASK} ]] && [[ ${QUIET} -eq 0 ]] ; then
67 output=" (${cnt_fmt}/${total}) Generating ${disp}"
68 fi
69
70 - if [[ ${JOBS_MAX} > 1 ]] ; then
71 - if [[ ${JOB_COUNT} == ${JOBS_MAX} ]] ; then
72 - wait ${JOB_PIDS[${JOB_IDX_S}]}
73 - JOB_RETS[${JOB_IDX_S}]=$?
74 - ((++JOB_IDX_S))
75 - ((--JOB_COUNT))
76 - fi
77 - (
78 - # Accumulate all the output in one go so the parallel
79 - # jobs don't tromp on each other
80 - x=$(
81 - [[ -n ${output} ]] && ebegin "${output}"
82 - "${DESTDIR}"usr/bin/localedef ${LOCALEDEF_OPTS} \
83 - -i "${input}" \
84 - -f "${charmap}" \
85 - -A "${ALIAS}" \
86 - --prefix "${DESTDIR}" \
87 - "${locale}" 2>&1
88 - ret=$?
89 - [[ -n ${output} ]] && eend ${ret}
90 - exit ${ret}
91 - )
92 + if [[ $(( JOB_IDX_E - JOB_IDX_S )) == ${JOBS_MAX} ]] ; then
93 + wait ${JOB_PIDS[$(( JOB_IDX_S++ ))]}
94 + JOB_RETS+=( $? )
95 + fi
96 + (
97 + # Accumulate all the output in one go so the parallel
98 + # jobs don't tromp on each other
99 + x=$(
100 + [[ -n ${output} ]] && ebegin "${output}"
101 + "${DESTDIR}"usr/bin/localedef ${LOCALEDEF_OPTS} \
102 + -i "${input}" \
103 + -f "${charmap}" \
104 + -A "${ALIAS}" \
105 + --prefix "${DESTDIR}" \
106 + "${locale}" 2>&1
107 ret=$?
108 - echo "${x}"
109 + [[ -n ${output} ]] && eend ${ret}
110 exit ${ret}
111 - ) &
112 - JOB_PIDS[${JOB_IDX_E}]=$!
113 - ((++JOB_IDX_E))
114 - ((++JOB_COUNT))
115 - else
116 - [[ -n ${output} ]] && ebegin "${output}"
117 - "${DESTDIR}"usr/bin/localedef ${LOCALEDEF_OPTS} \
118 - -i "${input}" \
119 - -f "${charmap}" \
120 - -A "${ALIAS}" \
121 - --prefix "${DESTDIR}" \
122 - "${locale}"
123 + )
124 ret=$?
125 - [[ -n ${output} ]] && eend ${ret}
126 - fi
127 + echo "${x}"
128 + exit ${ret}
129 + ) &
130 + JOB_PIDS+=( $! )
131 + : $(( ++JOB_IDX_E ))
132
133 if [[ ${ret} != 0 && ${locale} == */* ]] ; then
134 ewarn "Perhaps you meant to use a space instead of a / in your config file ?"
135 fi
136 -
137 - return ${ret}
138 }
139
140 JOB_PIDS=()
141 JOB_RETS=()
142 JOB_IDX_S=0
143 JOB_IDX_E=0
144 -JOB_COUNT=0
145 +cnt=0
146 lidx=0
147 while [[ -n ${locales_to_generate[${lidx}]} ]] ; do
148 - ((++cnt))
149 + : $(( ++cnt ))
150 locale=${locales_to_generate[$((lidx++))]}
151 charmap=${locales_to_generate[$((lidx++))]}
152
153 @@ -341,7 +320,7 @@
154 continue
155 fi
156
157 - disp=${locales_disp[$((cnt-1))]}
158 + disp=${locales_disp[$(( cnt - 1 ))]}
159
160 if [[ -n ${UPDATE} ]] ; then
161 normalized_locale=$(normalize ${locale})
162 @@ -371,24 +350,16 @@
163 [[ ${user_answer} == [nN]* ]] && continue
164 fi
165 generate_locale
166 - ((ret+=$?))
167 else
168 echo "${disp}"
169 fi
170 done
171
172 -if [[ ${JOBS_MAX} -gt 1 ]] ; then
173 - i=0
174 - while [[ ${i} -lt ${JOB_IDX_S} ]] ; do
175 - ((ret+=${JOB_RETS[${i}]}))
176 - ((++i))
177 - done
178 - while [[ ${JOB_IDX_S} -lt ${JOB_IDX_E} ]] ; do
179 - wait ${JOB_PIDS[${JOB_IDX_S}]}
180 - ((ret+=$?))
181 - ((++JOB_IDX_S))
182 - done
183 -fi
184 +for (( i = JOB_IDX_S; i < JOB_IDX_E; ++i )) ; do
185 + wait ${JOB_PIDS[$(( i++ ))]}
186 + JOB_RETS+=( $? )
187 +done
188 +ret=$(( 0 ${JOB_RETS[@]/#/+} ))
189
190 [[ ${QUIET} -eq 0 ]] && [[ -z ${JUST_LIST} ]] && \
191 einfo "Generation complete"