6
6
# config-TARGET: CURRENT=version for TARGET
7
7
# TARGET-VER: has a TARGET and VER variable
8
8
9
- : ${ROOT:=/ }
9
+ : " ${ROOT:=/ } "
10
10
[[ ${ROOT} != * / ]] && ROOT=" ${ROOT} /"
11
11
[[ ${ROOT} != /* ]] && ROOT=" ${PWD%/ } /${ROOT} "
12
12
BROOT=" @GENTOO_EPREFIX@"
13
13
[[ ${BROOT} == @* @ ]] && BROOT=" "
14
- : ${EPREFIX=" ${BROOT} " }
14
+ : " ${EPREFIX=${BROOT} } "
15
15
EROOT=" ${ROOT%/ }${EPREFIX} /"
16
16
export PORTAGE_CONFIGROOT=" ${EROOT} "
17
17
18
- cd " ${BROOT} /"
18
+ cd " ${BROOT} /" || die " Could not cd into $BROOT "
19
19
20
20
trap " :" INT QUIT TSTP
21
21
22
22
argv0=${0##*/ }
23
23
FUNCTIONS_SH=" ${BROOT} /lib/gentoo/functions.sh"
24
+ # shellcheck disable=SC1090
24
25
source ${FUNCTIONS_SH} || {
25
26
echo " ${argv0} : Could not source ${FUNCTIONS_SH} !" 1>&2
26
27
exit 1
@@ -31,7 +32,7 @@ umask 022
31
32
32
33
# *BSD SED does not work as-is, use GNU SED. TODO: find details.
33
34
SED=$( type -P gsed)
34
- : ${SED:= $(type -P sed)}
35
+ : " ${SED:= $(type -P sed)} "
35
36
36
37
usage () {
37
38
cat << USAGE_END
@@ -58,7 +59,7 @@ For example: ${BRACKET} i686-pc-linux-gnu-2.15.92.0.2${NORMAL}
58
59
For more info, please see ${HILITE} binutils-config${NORMAL} (8).
59
60
USAGE_END
60
61
61
- exit ${1:- 1}
62
+ exit " ${1:- 1} "
62
63
}
63
64
64
65
# Usage: version_sorted_paths <CHOST>
@@ -111,6 +112,7 @@ atomic_ln() {
111
112
112
113
setup_env () {
113
114
unset TARGET VER LIBPATH
115
+ # shellcheck disable=SC1090
114
116
source " ${ENV_D} /${PROFILE} "
115
117
if [[ -z ${TARGET} ]] ; then
116
118
eerror " ${PROFILE} is invalid (no \$ TARGET defined) :("
@@ -126,7 +128,7 @@ setup_env() {
126
128
#
127
129
BINPATH=" "
128
130
BINPATH_LINKS=" "
129
- if [[ ${TARGET} != ${HOST} ]] ; then
131
+ if [[ ${TARGET} != " ${HOST} " ]] ; then
130
132
#
131
133
# Newer paths: /usr/${HOST}/${TARGET}/...
132
134
# Older paths: /usr/${TARGET}/...
@@ -176,7 +178,7 @@ switch_profile() {
176
178
for x in * ; do
177
179
atomic_ln " ${BINPATH} /${x} " " ${ROOT} /${BINPATH_LINKS} " " ${x} "
178
180
atomic_ln " ${BINPATH_LINKS} /${x} " " ${EROOT} /usr/bin" " ${TARGET} -${x} "
179
- if [[ ${TARGET} == ${HOST} ]] ; then
181
+ if [[ ${TARGET} == " ${HOST} " ]] ; then
180
182
if [[ ${USE_NATIVE_LINKS} == yes ]]; then
181
183
atomic_ln " ${TARGET} -${x} " " ${EROOT} /usr/bin" " ${x} "
182
184
else
@@ -207,9 +209,9 @@ switch_profile() {
207
209
#
208
210
# Generate library / ldscripts symlinks
209
211
#
210
- : ${LIBPATH:= ${EPREFIX} / usr/ lib/ binutils/ ${TARGET} / ${VER} }
212
+ : " ${LIBPATH:= ${EPREFIX} / usr/ lib/ binutils/ ${TARGET} / ${VER} } "
211
213
cd " ${ROOT} /${LIBPATH} " || exit 1
212
- if [[ ${TARGET} == ${HOST} ]] ; then
214
+ if [[ ${TARGET} == " ${HOST} " ]] ; then
213
215
dstlib=${EROOT} /usr/${HOST} /lib
214
216
else
215
217
dstlib=${EROOT} /usr/${HOST} /${TARGET} /lib
@@ -238,7 +240,7 @@ switch_profile() {
238
240
INCPATH=${LIBPATH} /include
239
241
if [[ -d ${ROOT} /${INCPATH} ]] ; then
240
242
cd " ${ROOT} /${INCPATH} " || exit 1
241
- if [[ ${HOST} != ${TARGET} ]] ; then
243
+ if [[ ${HOST} != " ${TARGET} " ]] ; then
242
244
# Clean out old path -- cannot use '-exec {} +' syntax here
243
245
find . -type f -exec rm -f " ${EROOT} /usr/${TARGET} /usr/include/{}" \;
244
246
rmdir " ${EROOT} /usr/${TARGET} /usr/include" >& /dev/null
@@ -251,7 +253,7 @@ switch_profile() {
251
253
# Make sure proper paths get updated
252
254
#
253
255
local env_update_flag=" --no-ldconfig"
254
- if [[ ${TARGET} == ${HOST} ]] ; then
256
+ if [[ ${TARGET} == " ${HOST} " ]] ; then
255
257
# Delete old config now that binutils-libs installs these files.
256
258
# Note: This skips ldconfig update if env.d had LDPATH, but meh.
257
259
# Most people have upgraded to ld.so.conf.d, and someone else will
@@ -281,7 +283,7 @@ switch_profile() {
281
283
#
282
284
# Regen env.d if need/can be
283
285
#
284
- if [[ ${ROOT} == " /" ]] && [[ ${TARGET} == ${HOST} ]] ; then
286
+ if [[ ${ROOT} == " /" ]] && [[ ${TARGET} == " ${HOST} " ]] ; then
285
287
env-update ${env_update_flag}
286
288
echo
287
289
ewarn " Please remember to run:"
@@ -294,24 +296,24 @@ switch_profile() {
294
296
}
295
297
296
298
uninstall_target () {
297
- : ${TARGET:= ${UARG} }
299
+ : " ${TARGET:= ${UARG} } "
298
300
299
- if [[ ${TARGET} == ${HOST} ]] ; then
301
+ if [[ ${TARGET} == " ${HOST} " ]] ; then
300
302
die " refusing to uninstall native binutils"
301
303
fi
302
304
303
305
shopt -s nullglob
304
306
PROFILE=" "
305
307
306
- for PROFILE in " ${ENV_D} " /${TARGET} -* ; do
308
+ for PROFILE in " ${ENV_D} /${TARGET} -" * ; do
307
309
ewarn " Removing all signs of ${PROFILE##*/ } "
308
- rm -f " ${ENV_D} " /${PROFILE}
310
+ rm -f " ${ENV_D} /${PROFILE} "
309
311
done
310
312
if [[ -z ${PROFILE} ]] && [[ ! -e ${ENV_D} /config-${TARGET} ]] ; then
311
313
die " no profiles exist for '${TARGET} '"
312
314
fi
313
315
314
- rm -f " ${ENV_D} " /config-${TARGET}
316
+ rm -f " ${ENV_D} /config-${TARGET} "
315
317
316
318
local x
317
319
for x in \
@@ -320,17 +322,17 @@ uninstall_target() {
320
322
nm objcopy objdump ranlib readelf size strings strip
321
323
do
322
324
x=(
323
- " ${EROOT} " /usr/bin/${TARGET} -${x}
324
- " ${EROOT} " /usr/{${HOST} /,}${TARGET} /bin/${x}
325
- " ${EROOT} " /usr/libexec/gcc/${TARGET} /${x}
325
+ " ${EROOT} /usr/bin/${TARGET} -${x} "
326
+ " ${EROOT} /usr/" {${HOST} /,}" ${TARGET} /bin/${x} "
327
+ " ${EROOT} /usr/libexec/gcc/${TARGET} /${x} "
326
328
)
327
329
rm -f " ${x[@]} "
328
330
done
329
331
for x in " ${HEADERS[@]} " ; do
330
- rm -f " ${EROOT} " /usr/{ ${HOST} /,} ${TARGET} /{usr/,}include/${x}
332
+ rm -f " ${EROOT} /usr/" { " ${HOST} /" ,} " ${TARGET} /" {usr/,}" include/${x} "
331
333
done
332
334
for x in bfd iberty opcodes ; do
333
- rm -f " ${EROOT} " /usr/${HOST} /${TARGET} /lib/lib${x} {{-* ,}.so,.a,.la}
335
+ rm -f " ${EROOT} /usr/${HOST} /${TARGET} /lib/lib${x} " {{-* ,}.so,.a,.la}
334
336
done
335
337
# Delete broken symlinks
336
338
local destdir=" ${EROOT} /usr/${HOST} /${TARGET} "
@@ -339,12 +341,12 @@ uninstall_target() {
339
341
rmdir \
340
342
" ${destdir} " /{bin,include,lib,usr} \
341
343
" ${destdir} " \
342
- " ${EROOT} " /var/db/pkg/cross-${TARGET} \
343
- " ${EROOT} " /usr/{ ${HOST} /,} ${TARGET} /bin \
344
- " ${EROOT} " /usr/libexec/gcc/${TARGET} \
344
+ " ${EROOT} /var/db/pkg/cross-${TARGET} " \
345
+ " ${EROOT} /usr/" { " ${HOST} /" ,} " ${TARGET} /bin" \
346
+ " ${EROOT} /usr/libexec/gcc/${TARGET} " \
345
347
2> /dev/null
346
348
347
- rm -f " ${ENV_D} " /${TARGET} -*
349
+ rm -f " ${ENV_D} /${TARGET} -" *
348
350
}
349
351
350
352
set_current_profile () {
@@ -353,6 +355,7 @@ set_current_profile() {
353
355
return 1
354
356
fi
355
357
358
+ # shellcheck disable=SC1090
356
359
source " ${ENV_D} /config-${TARGET} "
357
360
358
361
if [[ -z ${CURRENT} ]] ; then
@@ -392,17 +395,19 @@ list_profiles() {
392
395
[[ -f ${x} ]] || continue
393
396
[[ ${x} == * /config-* ]] && continue
394
397
398
+ # shellcheck disable=SC1090
395
399
source " ${x} "
396
- if [[ ${target} != ${TARGET} ]] ; then
400
+ if [[ ${target} != " ${TARGET} " ]] ; then
397
401
[[ -n ${target} ]] && echo
398
402
target=${TARGET}
399
403
fi
400
404
401
405
x=${x##*/ }
402
406
if [[ -e ${ENV_D} /config-${TARGET} ]] ; then
407
+ # shellcheck disable=SC1090
403
408
source " ${ENV_D} /config-${TARGET} "
404
- if [[ ${VER} == ${CURRENT} ]] ; then
405
- [[ ${TARGET} == ${HOST} ]] \
409
+ if [[ ${VER} == " ${CURRENT} " ]] ; then
410
+ [[ ${TARGET} == " ${HOST} " ]] \
406
411
&& x=" ${x} ${GOOD} *${NORMAL} " \
407
412
|| x=" ${x} ${HILITE} *${NORMAL} "
408
413
fi
@@ -425,7 +430,7 @@ list_profiles() {
425
430
426
431
set_HOST () {
427
432
# Set HOST to CHOST if it isn't already set
428
- : ${HOST:= ${CHOST:- $(portageq envvar CHOST)} }
433
+ : " ${HOST:= ${CHOST:- $(portageq envvar CHOST)} } "
429
434
430
435
if [[ -z ${HOST} ]] ; then
431
436
eerror " Cannot determine CHOST. Something is badly broken."
@@ -499,11 +504,11 @@ switch_profile)
499
504
# decode user's profile choice
500
505
x=${UARG:- $(TARGET=${HOST} set_current_profile)}
501
506
PROFILE=" "
502
- if [[ -z $( echo ${x} | tr -d ' [:digit:]' ) ]] ; then
507
+ if [[ -z $( echo " ${x} " | tr -d ' [:digit:]' ) ]] ; then
503
508
# User gave us a profile index number from '--list-profiles'
504
509
i=1
505
510
for y in " ${ENV_D} " /* ; do
506
- [[ ${y/ config-} != ${y} ]] && continue
511
+ [[ ${y/ config-} != " ${y} " ]] && continue
507
512
508
513
if [[ -f ${y} ]] && [[ ${x} -eq ${i} ]] ; then
509
514
PROFILE=${y##*/ }
@@ -516,9 +521,9 @@ switch_profile)
516
521
if [[ -z ${PROFILE} ]] ; then
517
522
# User gave us "latest" or "<CTARGET>-latest".
518
523
if [[ ${x} == latest ]]; then
519
- x=$( version_sorted_paths " ${ENV_D} " /${HOST} -* | tail -1)
524
+ x=$( version_sorted_paths " ${ENV_D} /${HOST} -" * | tail -1)
520
525
elif [[ ${x} == * -latest ]]; then
521
- x=$( version_sorted_paths " ${ENV_D} " /${x% -latest} -* | tail -1)
526
+ x=$( version_sorted_paths " ${ENV_D} /${x% -latest} -" * | tail -1)
522
527
fi
523
528
524
529
# User gave us a full <CTARGET-version>, <CTARGET> or <version>
@@ -549,6 +554,6 @@ switch_profile)
549
554
;;
550
555
esac
551
556
552
- eval ${DOIT}
557
+ eval " ${DOIT} "
553
558
554
559
# vim:ts=4
0 commit comments