[arch-projects] [dbscripts] [PATCH v2 1/5] Use even more bashisms.

Eli Schwartz eschwartz at archlinux.org
Mon Feb 19 20:11:41 UTC 2018


Catch some cases that were missed in the previous run.

Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
---

This patch is new + refactor some changes from:
ftpdir-cleanup,sourceballs: replace external find command with bash globbing

 cron-jobs/devlist-mailer  |  6 +++---
 cron-jobs/ftpdir-cleanup  | 14 +++++++-------
 cron-jobs/integrity-check |  2 +-
 cron-jobs/sourceballs     | 12 ++++++------
 cron-jobs/update-web-db   |  6 +++---
 5 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/cron-jobs/devlist-mailer b/cron-jobs/devlist-mailer
index ca2e46b..65a5483 100755
--- a/cron-jobs/devlist-mailer
+++ b/cron-jobs/devlist-mailer
@@ -7,17 +7,17 @@ LIST="arch-dev-public at archlinux.org"
 FROM="repomaint at archlinux.org"
 
 SUBJECT="Repository Maintenance $(date +"%d-%m-%Y")"
-if [ $# -ge 1 ]; then
+if (( $# >= 1 )); then
     SUBJECT="$1 $(date +"%d-%m-%Y")"
 fi
 
-if [ $# -ge 2 ]; then
+if (( $# >= 2 )); then
     LIST="$2"
 fi
 
 stdin="$(cat)"
 #echo used to strip whitespace for checking for actual data
-if [ -n "$(echo $stdin)" ]; then
+if [[ -n "$(echo $stdin)" ]]; then
 
 echo "Subject: $SUBJECT
 To: $LIST
diff --git a/cron-jobs/ftpdir-cleanup b/cron-jobs/ftpdir-cleanup
index 2f3d5aa..c771950 100755
--- a/cron-jobs/ftpdir-cleanup
+++ b/cron-jobs/ftpdir-cleanup
@@ -9,11 +9,11 @@ clean_pkg() {
 
 	if ! ${CLEANUP_DRYRUN}; then
 		for pkg in "$@"; do
-			if [ -h "$pkg" ]; then
+			if [[ -h $pkg ]]; then
 				rm -f "$pkg" "$pkg.sig"
 			else
 				mv_acl "$pkg" "$CLEANUP_DESTDIR/${pkg##*/}"
-				if [ -e "$pkg.sig" ]; then
+				if [[ -e $pkg.sig ]]; then
 					mv_acl "$pkg.sig" "$CLEANUP_DESTDIR/${pkg##*/}.sig"
 				fi
 				touch "${CLEANUP_DESTDIR}/${pkg##*/}"
@@ -34,7 +34,7 @@ ${CLEANUP_DRYRUN} && warning 'dry run mode is active'
 
 for repo in ${PKGREPOS[@]}; do
 	for arch in ${ARCHES[@]}; do
-		if [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}" ]; then
+		if [[ ! -f ${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT} ]]; then
 			continue
 		fi
 		# get a list of actual available package files
@@ -43,7 +43,7 @@ for repo in ${PKGREPOS[@]}; do
 		bsdtar -xOf "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}" | awk '/^%FILENAME%/{getline;print}' | sort > "${WORKDIR}/db-${repo}-${arch}"
 
 		missing_pkgs=($(comm -13 "${WORKDIR}/repo-${repo}-${arch}" "${WORKDIR}/db-${repo}-${arch}"))
-		if [ ${#missing_pkgs[@]} -ge 1 ]; then
+		if (( ${#missing_pkgs[@]} >= 1 )); then
 			error "Missing packages in [%s] (%s)..." "$repo" "$arch"
 			for missing_pkg in ${missing_pkgs[@]}; do
 				msg2 "${missing_pkg}"
@@ -51,7 +51,7 @@ for repo in ${PKGREPOS[@]}; do
 		fi
 
 		old_pkgs=($(comm -23 "${WORKDIR}/repo-${repo}-${arch}" "${WORKDIR}/db-${repo}-${arch}"))
-		if [ ${#old_pkgs[@]} -ge 1 ]; then
+		if (( ${#old_pkgs[@]} >= 1 )); then
 			msg "Removing old packages from [%s] (%s)..." "$repo" "$arch"
 			for old_pkg in ${old_pkgs[@]}; do
 				msg2 "${old_pkg}"
@@ -67,7 +67,7 @@ find "$FTP_BASE/${PKGPOOL}" -name "*${PKGEXT}" -printf '%f\n' | sort > "${WORKDI
 find "${WORKDIR}" -maxdepth 1 -type f -name 'db-*' -exec cat {} \; | sort -u > "${WORKDIR}/db"
 
 old_pkgs=($(comm -23 "${WORKDIR}/pool" "${WORKDIR}/db"))
-if [ ${#old_pkgs[@]} -ge 1 ]; then
+if (( ${#old_pkgs[@]} >= 1 )); then
 	msg "Removing old packages from package pool..."
 	for old_pkg in ${old_pkgs[@]}; do
 		msg2 "${old_pkg}"
@@ -76,7 +76,7 @@ if [ ${#old_pkgs[@]} -ge 1 ]; then
 fi
 
 old_pkgs=($(find ${CLEANUP_DESTDIR} -type f -name "*${PKGEXT}" -mtime +${CLEANUP_KEEP} -printf '%f\n'))
-if [ ${#old_pkgs[@]} -ge 1 ]; then
+if (( ${#old_pkgs[@]} >= 1 )); then
 	msg "Removing old packages from the cleanup directory..."
 	for old_pkg in ${old_pkgs[@]}; do
 		msg2 "${old_pkg}"
diff --git a/cron-jobs/integrity-check b/cron-jobs/integrity-check
index 211a24b..f1e75ab 100755
--- a/cron-jobs/integrity-check
+++ b/cron-jobs/integrity-check
@@ -7,7 +7,7 @@ dirname="$(dirname $0)"
 
 script_lock
 
-if [ $# -ne 1 ]; then
+if (( $# != 1 )); then
 	die "usage: ${0##*/} <mailto>"
 fi
 mailto=$1
diff --git a/cron-jobs/sourceballs b/cron-jobs/sourceballs
index 9ab4e98..25a8abb 100755
--- a/cron-jobs/sourceballs
+++ b/cron-jobs/sourceballs
@@ -21,7 +21,7 @@ renice +10 -p $$ > /dev/null
 for repo in ${PKGREPOS[@]}; do
 	for arch in ${ARCHES[@]}; do
 		# Repo does not exist; skip it
-		if [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}" ]; then
+		if [[ ! -f ${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT} ]]; then
 			continue
 		fi
 		bsdtar -xOf "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}" \
@@ -81,7 +81,7 @@ for repo in ${PKGREPOS[@]}; do
 			mkdir -p -m0770 "${WORKDIR}/pkgbuilds/${repo}-${pkgarch}"
 			arch_svn export -q "${SVNREPO}/${pkgbase}/repos/${repo}-${pkgarch}" \
 				"${WORKDIR}/pkgbuilds/${repo}-${pkgarch}/${pkgbase}" >/dev/null 2>&1
-			if [ $? -ge 1 ]; then
+			if (( $? >= 1 )); then
 				failedpkgs+=("${pkgbase}-${pkgver}${SRCEXT}")
 				continue
 			fi
@@ -89,7 +89,7 @@ for repo in ${PKGREPOS[@]}; do
 			# Build the actual source package
 			pushd "${WORKDIR}/pkgbuilds/${repo}-${pkgarch}/${pkgbase}" >/dev/null
 			makepkg --nocolor --allsource --ignorearch --skippgpcheck --config "${dirname}/makepkg.conf" >"${WORKDIR}/${pkgbase}.log" 2>&1
-			if [ $? -eq 0 ] && [ -f "${pkgbase}-${pkgver}${SRCEXT}" ]; then
+			if (( $? == 0 )) && [[ -f ${pkgbase}-${pkgver}${SRCEXT} ]]; then
 				mv_acl "${pkgbase}-${pkgver}${SRCEXT}" "${FTP_BASE}/${SRCPOOL}/${pkgbase}-${pkgver}${SRCEXT}"
 				# Avoid creating the same source package for every arch
 				echo "${pkgbase}-${pkgver}${SRCEXT}" >> "${WORKDIR}/available-src-pkgs"
@@ -121,7 +121,7 @@ find "${WORKDIR}" -maxdepth 1 -type f -name 'expected-src-pkgs' -exec cat {} \;
 find "${WORKDIR}" -maxdepth 1 -type f -name 'available-src-pkgs' -exec cat {} \; | sort -u > "${WORKDIR}/available-src-pkgs.sort"
 old_pkgs=($(comm -23 "${WORKDIR}/available-src-pkgs.sort" "${WORKDIR}/expected-src-pkgs.sort"))
 
-if [ ${#old_pkgs[@]} -ge 1 ]; then
+if (( ${#old_pkgs[@]} >= 1 )); then
 	msg "Removing old source packages..."
 	${SOURCE_CLEANUP_DRYRUN} && warning 'dry run mode is active'
 	for old_pkg in ${old_pkgs[@]}; do
@@ -134,7 +134,7 @@ if [ ${#old_pkgs[@]} -ge 1 ]; then
 fi
 
 old_pkgs=($(find ${SOURCE_CLEANUP_DESTDIR} -type f -name "*${SRCEXT}" -mtime +${SOURCE_CLEANUP_KEEP} -printf '%f\n'))
-if [ ${#old_pkgs[@]} -ge 1 ]; then
+if (( ${#old_pkgs[@]} >= 1 )); then
 	msg "Removing old source packages from the cleanup directory..."
 	for old_pkg in ${old_pkgs[@]}; do
 		msg2 "${old_pkg}"
@@ -142,7 +142,7 @@ if [ ${#old_pkgs[@]} -ge 1 ]; then
 	done
 fi
 
-if [ -f "${WORKDIR}/makepkg-fail.log" ]; then
+if [[ -f ${WORKDIR}/makepkg-fail.log ]]; then
 	msg "Log of failed packages"
 	cat "${WORKDIR}/makepkg-fail.log"
 fi
diff --git a/cron-jobs/update-web-db b/cron-jobs/update-web-db
index 23af067..c859ce0 100755
--- a/cron-jobs/update-web-db
+++ b/cron-jobs/update-web-db
@@ -27,7 +27,7 @@ renice +5 -p $$ > /dev/null
 echo "%s: Updating DB at %s" "$cmd" "$(date)" >> "${LOGOUT}"
 
 # source our virtualenv if it exists
-if [ -f "$ENVPATH" ]; then
+if [[ -f "$ENVPATH" ]]; then
 	. "$ENVPATH"
 fi
 
@@ -47,7 +47,7 @@ for repo in ${REPOS[@]}; do
 	for arch in ${ARCHES[@]}; do
 		repo_lock ${repo} ${arch} || exit 1
 		dbfile="/srv/ftp/${repo}/os/${arch}/${repo}${dbfileext}"
-		if [ -f "${dbfile}" ]; then
+		if [[ -f ${dbfile} ]]; then
 			mkdir -p "${WORKDIR}/${repo}/${arch}"
 			cp "${dbfile}" "${WORKDIR}/${repo}/${arch}/${repo}${dbfileext}"
 		fi
@@ -60,7 +60,7 @@ pushd $SPATH >/dev/null
 for repo in ${REPOS[@]}; do
 	for arch in ${ARCHES[@]}; do
 		dbcopy="${WORKDIR}/${repo}/${arch}/${repo}${dbfileext}"
-		if [ -f "${dbcopy}" ]; then
+		if [[ -f ${dbcopy} ]]; then
 			echo "Updating ${repo}-${arch}" >> "${LOGOUT}"
 			./manage.py reporead ${flags} ${arch} "${dbcopy}" >> "${LOGOUT}" 2>&1
 			echo "" >> "${LOGOUT}"
-- 
2.16.2


More information about the arch-projects mailing list