[arch-projects] [devtools][PATCH 11/13] Quote strings that shellcheck warns about.

Luke Shumaker lukeshu at parabola.nu
Fri May 5 22:41:08 UTC 2017


These changes are all strictly "slap some double-quotes in there".
Anything more than that is not included in this commit.
---
 arch-nspawn.in     | 12 ++++++------
 archrelease.in     |  2 +-
 archrm.in          |  2 +-
 bash_completion.in |  4 ++--
 checkpkg.in        |  2 +-
 commitpkg.in       | 30 +++++++++++++++---------------
 crossrepomove.in   | 10 +++++-----
 find-libdeps.in    |  4 ++--
 finddeps.in        |  6 +++---
 lddd.in            | 16 ++++++++--------
 lib/common.sh      | 16 +++++++++-------
 makechrootpkg.in   |  6 +++---
 mkarchroot.in      |  4 ++--
 13 files changed, 58 insertions(+), 56 deletions(-)

diff --git a/arch-nspawn.in b/arch-nspawn.in
index 548ebec..2d42e3a 100644
--- a/arch-nspawn.in
+++ b/arch-nspawn.in
@@ -71,7 +71,7 @@ build_mount_args() {
 
 	mount_args+=("--bind=${cache_dirs[0]}")
 
-	for cache_dir in ${cache_dirs[@]:1}; do
+	for cache_dir in "${cache_dirs[@]:1}"; do
 		mount_args+=("--bind-ro=$cache_dir")
 	done
 }
@@ -80,8 +80,8 @@ copy_hostconf () {
 	cp -a /etc/pacman.d/gnupg "$working_dir/etc/pacman.d"
 	echo "Server = $host_mirror" >"$working_dir/etc/pacman.d/mirrorlist"
 
-	[[ -n $pac_conf ]] && cp $pac_conf "$working_dir/etc/pacman.conf"
-	[[ -n $makepkg_conf ]] && cp $makepkg_conf "$working_dir/etc/makepkg.conf"
+	[[ -n $pac_conf ]] && cp "$pac_conf" "$working_dir/etc/pacman.conf"
+	[[ -n $makepkg_conf ]] && cp "$makepkg_conf" "$working_dir/etc/makepkg.conf"
 
 	local file
 	for file in "${files[@]}"; do
@@ -89,7 +89,7 @@ copy_hostconf () {
 		cp -T "$file" "$working_dir$file"
 	done
 
-	sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${cache_dirs[@]})|g" -i "$working_dir/etc/pacman.conf"
+	sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n "${cache_dirs[@]}")|g" -i "$working_dir/etc/pacman.conf"
 }
 # }}}
 
@@ -98,14 +98,14 @@ umask 0022
 # Sanity check
 if [[ ! -f "$working_dir/.arch-chroot" ]]; then
 	die "'%s' does not appear to be an Arch chroot." "$working_dir"
-elif [[ $(cat "$working_dir/.arch-chroot") != $CHROOT_VERSION ]]; then
+elif [[ $(cat "$working_dir/.arch-chroot") != "$CHROOT_VERSION" ]]; then
 	die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "$CHROOT_VERSION"
 fi
 
 build_mount_args
 copy_hostconf
 
-eval $(grep '^CARCH=' "$working_dir/etc/makepkg.conf")
+eval "$(grep '^CARCH=' "$working_dir/etc/makepkg.conf")"
 
 [[ -z $nosetarch ]] || unset CARCH
 
diff --git a/archrelease.in b/archrelease.in
index 3b11652..2ba9d48 100644
--- a/archrelease.in
+++ b/archrelease.in
@@ -74,7 +74,7 @@ for tag in "$@"; do
 	fi
 
 	# copy all files at once from trunk to the subdirectory in repos/
-	svn copy -q -r HEAD ${known_files[@]/#/$trunk/} "repos/$tag/"
+	svn copy -q -r HEAD "${known_files[@]/#/$trunk/}" "repos/$tag/"
 
 	stat_done
 done
diff --git a/archrm.in b/archrm.in
index 3173131..6f4dfc3 100644
--- a/archrm.in
+++ b/archrm.in
@@ -13,4 +13,4 @@ fi
 #
 #popd
 
-rm -rf $1
+rm -rf "$1"
diff --git a/bash_completion.in b/bash_completion.in
index f0a6bd0..9feef74 100644
--- a/bash_completion.in
+++ b/bash_completion.in
@@ -5,8 +5,8 @@ _devtools_compgen() {
   local i r
   COMPREPLY=($(compgen -W '$*' -- "$cur"))
   for ((i=1; i < ${#COMP_WORDS[@]}-1; i++)); do
-    for r in ${!COMPREPLY[@]}; do
-      if [[ ${COMP_WORDS[i]} = ${COMPREPLY[r]} ]]; then
+    for r in "${!COMPREPLY[@]}"; do
+      if [[ ${COMP_WORDS[i]} = "${COMPREPLY[r]}" ]]; then
         unset 'COMPREPLY[r]'; break
       fi
     done
diff --git a/checkpkg.in b/checkpkg.in
index 03e29f7..20920be 100644
--- a/checkpkg.in
+++ b/checkpkg.in
@@ -44,7 +44,7 @@ for _pkgname in "${pkgname[@]}"; do
 
 	oldpkg=${pkgurl##*://*/}
 
-	if [[ ${oldpkg##*/} = ${pkgfile##*/} ]]; then
+	if [[ ${oldpkg##*/} = "${pkgfile##*/}" ]]; then
 		die "The built package (%s) is the one in the repo right now!" "$_pkgname"
 	fi
 
diff --git a/commitpkg.in b/commitpkg.in
index 87f5b8b..0482170 100644
--- a/commitpkg.in
+++ b/commitpkg.in
@@ -50,7 +50,7 @@ done
 for i in 'changelog' 'install'; do
 	while read -r file; do
 		# evaluate any bash variables used
-		eval file=\"$(sed "s/^\(['\"]\)\(.*\)\1\$/\2/" <<< "$file")\"
+		eval "file=\"$(sed "s/^\(['\"]\)\(.*\)\1\$/\2/" <<< "$file")\""
 		needsversioning+=("$file")
 	done < <(sed -n "s/^[[:space:]]*$i=//p" PKGBUILD)
 done
@@ -79,12 +79,12 @@ done
 shift $(( OPTIND - 1 ))
 
 # check packages have the packager field set
-for _arch in ${arch[@]}; do
+for _arch in "${arch[@]}"; do
 	if [[ -n $commit_arch && ${_arch} != "$commit_arch" ]]; then
 		continue
 	fi
-	for _pkgname in ${pkgname[@]}; do
-		fullver=$(get_full_version $_pkgname)
+	for _pkgname in "${pkgname[@]}"; do
+		fullver=$(get_full_version "$_pkgname")
 
 		if pkgfile=$(find_cached_package "$_pkgname" "$_arch" "$fullver"); then
 			if grep -q "packager = Unknown Packager" <(bsdtar -xOqf "$pkgfile" .PKGINFO); then
@@ -128,18 +128,18 @@ declare -a uploads
 declare -a commit_arches
 declare -a skip_arches
 
-for _arch in ${arch[@]}; do
+for _arch in "${arch[@]}"; do
 	if [[ -n $commit_arch && ${_arch} != "$commit_arch" ]]; then
-		skip_arches+=($_arch)
+		skip_arches+=("$_arch")
 		continue
 	fi
 
-	for _pkgname in ${pkgname[@]}; do
-		fullver=$(get_full_version $_pkgname)
+	for _pkgname in "${pkgname[@]}"; do
+		fullver=$(get_full_version "$_pkgname")
 
 		if ! pkgfile=$(find_cached_package "$_pkgname" "$fullver" "${_arch}"); then
 			warning "Skipping %s: failed to locate package file" "$_pkgname-$fullver-$_arch"
-			skip_arches+=($_arch)
+			skip_arches+=("$_arch")
 			continue 2
 		fi
 		uploads+=("$pkgfile")
@@ -159,9 +159,9 @@ for _arch in ${arch[@]}; do
 	done
 done
 
-for _arch in ${arch[@]}; do
-	if ! in_array $_arch ${skip_arches[@]}; then
-		commit_arches+=($_arch)
+for _arch in "${arch[@]}"; do
+	if ! in_array "$_arch" "${skip_arches[@]}"; then
+		commit_arches+=("$_arch")
 	fi
 done
 
@@ -187,8 +187,8 @@ if [[ "${arch[*]}" == 'any' ]]; then
 	if [[ -d ../repos/$repo-i686 && -d ../repos/$repo-x86_64 ]]; then
 		pushd ../repos/ >/dev/null
 		stat_busy "Removing %s and %s" "$repo-i686" "$repo-x86_64"
-		svn rm -q $repo-i686
-		svn rm -q $repo-x86_64
+		svn rm -q "$repo-i686"
+		svn rm -q "$repo-x86_64"
 		svn commit -q -m "Removed $repo-i686 and $repo-x86_64 for $pkgname"
 		stat_done
 		popd >/dev/null
@@ -197,7 +197,7 @@ else
 	if [[ -d ../repos/$repo-any ]]; then
 		pushd ../repos/ >/dev/null
 		stat_busy "Removing %s" "$repo-any"
-		svn rm -q $repo-any
+		svn rm -q "$repo-any"
 		svn commit -q -m "Removed $repo-any for $pkgname"
 		stat_done
 		popd >/dev/null
diff --git a/crossrepomove.in b/crossrepomove.in
index 14c264e..ffc4507 100644
--- a/crossrepomove.in
+++ b/crossrepomove.in
@@ -38,7 +38,7 @@ target_dbscripts="/srv/repos/svn-${target_name}/dbscripts"
 
 setup_workdir
 
-pushd $WORKDIR >/dev/null
+pushd "$WORKDIR" >/dev/null
 
 msg "Downloading sources for %s" "${pkgbase}"
 svn -q checkout -N "${target_svn}" target_checkout
@@ -47,14 +47,14 @@ svn -q export "${source_svn}/${pkgbase}/trunk" "target_checkout/${pkgbase}/trunk
 . "target_checkout/${pkgbase}/trunk/PKGBUILD"
 
 msg "Downloading packages for %s" "${pkgbase}"
-for _arch in ${arch[@]}; do
+for _arch in "${arch[@]}"; do
 	if [[ "${_arch[*]}" == 'any' ]]; then
 		repo_arch='x86_64'
 	else
 		repo_arch=${_arch}
 	fi
-	for _pkgname in ${pkgname[@]}; do
-		fullver=$(get_full_version $_pkgname)
+	for _pkgname in "${pkgname[@]}"; do
+		fullver=$(get_full_version "$_pkgname")
 		pkgpath="/srv/ftp/$source_repo/os/$repo_arch/$_pkgname-$fullver-${_arch}.pkg.tar.*"
 		ssh "$server" "cp $pkgpath staging/$target_repo" || die
 	done
@@ -71,7 +71,7 @@ popd >/dev/null
 ssh "${server}" "${target_dbscripts}/db-update" || die
 
 msg "Removing %s from %s" "${pkgbase}" "${source_repo}"
-for _arch in ${arch[@]}; do
+for _arch in "${arch[@]}"; do
 	ssh "${server}" "${source_dbscripts}/db-remove ${source_repo} ${_arch} ${pkgbase}"
 done
 svn -q checkout -N "${source_svn}" source_checkout
diff --git a/find-libdeps.in b/find-libdeps.in
index c596f48..04adebf 100644
--- a/find-libdeps.in
+++ b/find-libdeps.in
@@ -28,7 +28,7 @@ if [[ -z $1 ]]; then
 fi
 
 if [[ -d $1 ]]; then
-	pushd $1 >/dev/null
+	pushd "$1" >/dev/null
 else
 	setup_workdir
 
@@ -48,7 +48,7 @@ process_sofile() {
 	if [[ "$soversion" = "$sofile" ]] && ((IGNORE_INTERNAL)); then
 		continue
 	fi
-	if ! in_array "${soname}=${soversion}-${soarch}" ${soobjects[@]}; then
+	if ! in_array "${soname}=${soversion}-${soarch}" "${soobjects[@]}"; then
 		# libfoo.so=1-64
 		echo "${soname}=${soversion}-${soarch}"
 		soobjects+=("${soname}=${soversion}-${soarch}")
diff --git a/finddeps.in b/finddeps.in
index 03e5501..c71f151 100644
--- a/finddeps.in
+++ b/finddeps.in
@@ -24,17 +24,17 @@ find . -type d | while read d; do
 		for dep in "${depends[@]}"; do
 			# lose the version comparator, if any
 			depname=${dep%%[<>=]*}
-			[[ $depname = $match ]] && echo "$d (depends)"
+			[[ $depname = "$match" ]] && echo "$d (depends)"
 		done
 		for dep in "${makedepends[@]}"; do
 			# lose the version comparator, if any
 			depname=${dep%%[<>=]*}
-			[[ $depname = $match ]] && echo "$d (makedepends)"
+			[[ $depname = "$match" ]] && echo "$d (makedepends)"
 		done
 		for dep in "${optdepends[@]/:*}"; do
 			# lose the version comaparator, if any
 			depname=${dep%%[<>=]*}
-			[[ $depname = $match ]] && echo "$d (optdepends)"
+			[[ $depname = "$match" ]] && echo "$d (optdepends)"
 		done
 	fi
 done
diff --git a/lddd.in b/lddd.in
index f01ebf9..d83c3e6 100644
--- a/lddd.in
+++ b/lddd.in
@@ -20,7 +20,7 @@ for tree in $PATH $libdirs $extras; do
 	msg2 "DIR %s" "$tree"
 
 	#  Get list of files in tree.
-	files=$(find $tree -type f ! -name '*.a' ! -name '*.la' ! -name '*.py*' ! -name '*.txt' ! -name '*.h' ! -name '*.ttf' ! \
+	files=$(find "$tree" -type f ! -name '*.a' ! -name '*.la' ! -name '*.py*' ! -name '*.txt' ! -name '*.h' ! -name '*.ttf' ! \
 	-name '*.rb' ! -name '*.ko' ! -name '*.pc' ! -name '*.enc' ! -name '*.cf' ! -name '*.def' ! -name '*.rules' ! -name \
 	'*.cmi' ! -name  '*.mli' ! -name '*.ml' ! -name '*.cma' ! -name '*.cmx' ! -name '*.cmxa' ! -name '*.pod' ! -name '*.pm' \
 	! -name '*.pl' ! -name '*.al' ! -name '*.tcl' ! -name '*.bs' ! -name '*.o' ! -name '*.png' ! -name '*.gif' ! -name '*.cmo' \
@@ -28,22 +28,22 @@ for tree in $PATH $libdirs $extras; do
 	-name '*.mcopclass' ! -name '*.mcoptype')
 	IFS=$ifs
 	for i in $files; do
-		if (( $(file $i | grep -c 'ELF') != 0 )); then
+		if (( $(file "$i" | grep -c 'ELF') != 0 )); then
 			#  Is an ELF binary.
-			if (( $(ldd $i 2>/dev/null | grep -c 'not found') != 0 )); then
+			if (( $(ldd "$i" 2>/dev/null | grep -c 'not found') != 0 )); then
 				#  Missing lib.
-				echo "$i:" >> $TEMPDIR/raw.txt
-				ldd $i 2>/dev/null | grep 'not found' >> $TEMPDIR/raw.txt
+				echo "$i:" >> "$TEMPDIR/raw.txt"
+				ldd "$i" 2>/dev/null | grep 'not found' >> "$TEMPDIR/raw.txt"
 			fi
 		fi
 	done
 done
-grep '^/' $TEMPDIR/raw.txt | sed -e 's/://g' >> $TEMPDIR/affected-files.txt
+grep '^/' "$TEMPDIR/raw.txt" | sed -e 's/://g' >> "$TEMPDIR/affected-files.txt"
 # invoke pacman
 for i in $(cat $TEMPDIR/affected-files.txt); do
-	pacman -Qo $i | awk '{print $4,$5}' >> $TEMPDIR/pacman.txt
+	pacman -Qo "$i" | awk '{print $4,$5}' >> "$TEMPDIR/pacman.txt"
 done
 # clean list
-sort -u $TEMPDIR/pacman.txt >> $TEMPDIR/possible-rebuilds.txt
+sort -u "$TEMPDIR/pacman.txt" >> "$TEMPDIR/possible-rebuilds.txt"
 
 msg "Files saved to %s" "$TEMPDIR"
diff --git a/lib/common.sh b/lib/common.sh
index 8f043e8..4a15d9a 100644
--- a/lib/common.sh
+++ b/lib/common.sh
@@ -79,7 +79,7 @@ cleanup() {
 	if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then
 		rm -rf "$WORKDIR"
 	fi
-	exit ${1:-0}
+	exit "${1:-0}"
 }
 
 abort() {
@@ -112,7 +112,7 @@ in_array() {
 	local needle=$1; shift
 	local item
 	for item in "$@"; do
-		[[ $item = $needle ]] && return 0 # Found
+		[[ $item = "$needle" ]] && return 0 # Found
 	done
 	return 1 # Not Found
 }
@@ -134,7 +134,7 @@ get_full_version() {
 	else
 		for i in pkgver pkgrel epoch; do
 			local indirect="${i}_override"
-			eval $(declare -f package_$1 | sed -n "s/\(^[[:space:]]*$i=\)/${i}_override=/p")
+			eval "$(declare -f "package_$1" | sed -n "s/\(^[[:space:]]*$i=\)/${i}_override=/p")"
 			[[ -z ${!indirect} ]] && eval ${indirect}=\"${!i}\"
 		done
 		if (( ! epoch_override )); then
@@ -155,9 +155,9 @@ lock() {
 		eval "exec $1>"'"$2"'
 	fi
 
-	if ! flock -n $1; then
+	if ! flock -n "$1"; then
 		stat_busy "${@:3}"
-		flock $1
+		flock "$1"
 		stat_done
 	fi
 }
@@ -172,9 +172,9 @@ slock() {
 		eval "exec $1>"'"$2"'
 	fi
 
-	if ! flock -sn $1; then
+	if ! flock -sn "$1"; then
 		stat_busy "${@:3}"
-		flock -s $1
+		flock -s "$1"
 		stat_done
 	fi
 }
@@ -184,6 +184,8 @@ slock() {
 ##
 lock_close() {
 	local fd=$1
+	# https://github.com/koalaman/shellcheck/issues/862
+	# shellcheck disable=2034
 	exec {fd}>&-
 }
 
diff --git a/makechrootpkg.in b/makechrootpkg.in
index f8e8505..2dd160a 100644
--- a/makechrootpkg.in
+++ b/makechrootpkg.in
@@ -92,7 +92,7 @@ load_vars() {
 	[[ -f $makepkg_conf ]] || return 1
 
 	for var in {SRC,SRCPKG,PKG,LOG}DEST MAKEFLAGS PACKAGER; do
-		[[ -z ${!var:-} ]] && eval $(grep "^${var}=" "$makepkg_conf")
+		[[ -z ${!var:-} ]] && eval "$(grep "^${var}=" "$makepkg_conf")"
 	done
 
 	return 0
@@ -200,8 +200,8 @@ prepare_chroot() {
 	# which we might not be able to load (i.e. when building i686 packages on
 	# an x86_64 host).
 	sed -e '/^builduser:/d' -i "$copydir"/etc/{passwd,group}
-	printf >>"$copydir/etc/group"  'builduser:x:%d:\n' $builduser_gid
-	printf >>"$copydir/etc/passwd" 'builduser:x:%d:%d:builduser:/build:/bin/bash\n' $builduser_uid $builduser_gid
+	printf >>"$copydir/etc/group"  'builduser:x:%d:\n' "$builduser_gid"
+	printf >>"$copydir/etc/passwd" 'builduser:x:%d:%d:builduser:/build:/bin/bash\n' "$builduser_uid" "$builduser_gid"
 
 	$install -d "$copydir"/{build,build/.gnupg,startdir,{pkg,srcpkg,src,log}dest}
 
diff --git a/mkarchroot.in b/mkarchroot.in
index 152d323..52e363f 100644
--- a/mkarchroot.in
+++ b/mkarchroot.in
@@ -46,13 +46,13 @@ shift $((OPTIND - 1))
 
 check_root
 
-working_dir="$(readlink -f $1)"
+working_dir="$(readlink -f "$1")"
 shift 1
 
 [[ -z $working_dir ]] && die 'Please specify a working directory.'
 
 if [[ -z $cache_dir ]]; then
-	cache_dirs=($(pacman -v $cache_conf 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g'))
+	cache_dirs=($(pacman -v "$cache_conf" 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g'))
 else
 	cache_dirs=(${cache_dir})
 fi
-- 
2.12.2


More information about the arch-projects mailing list