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