FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > ArchLinux > ArchLinux Pacman Development

 
 
LinkBack Thread Tools
 
Old 11-14-2009, 11:41 PM
Isaac Good
 
Default Changing [ to [[ and (( - Part Two - Amended

>From e3e5bb93cb2b33315a8d6eff8956aa5b6c74d28d Mon Sep 17 00:00:00 2001
From: Isaac Good <pacman@isaac.otherinbox.com>
Date: Thu, 12 Nov 2009 15:09:05 -0500
Subject: [PATCH 2/2] Changing [ to [[ and (( - Part Two - Amended

Second half of makepkg
This replaces any prior patches of mine
Includes stuff like -o to || and -a to && etc
if [ $(type .. were preserved due to a bash bug with [[ and set -e and ERR trap

Signed-off-by: Isaac Good <pacman@isaac.otherinbox.com>
---
scripts/makepkg.sh.in | 216 ++++++++++++++++++++++++-------------------------
1 files changed, 107 insertions(+), 109 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 8082dfd..ed05e7e 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1095,9 +1095,9 @@ create_srcpackage() {
}

install_package() {
- [ "$INSTALL" -eq 0 ] && return
+ (( ! INSTALL )) && return

- if [ "$SPLITPKG" -eq 0 ]; then
+ if (( ! SPLITPKG )); then
msg "$(gettext "Installing package ${pkgname} with pacman -U...")"
else
msg "$(gettext "Installing ${pkgbase} package group with pacman -U...")"
@@ -1105,7 +1105,7 @@ install_package() {

local pkglist
for pkg in ${pkgname[@]}; do
- if [ -f $PKGDEST/${pkg}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT} ]; then
+ if [[ -f $PKGDEST/${pkg}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT} ]]; then
pkglist="${pkglist} $PKGDEST/${pkg}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
else
pkglist="${pkglist} $PKGDEST/${pkg}-${pkgver}-${pkgrel}-any${PKGEXT}"
@@ -1113,13 +1113,13 @@ install_package() {
done

local ret=0
- if [ "$ASROOT" -eq 0 ]; then
+ if (( ! ASROOT )); then
sudo pacman $PACMAN_OPTS -U ${pkglist} || ret=$?
else
pacman $PACMAN_OPTS -U ${pkglist} || ret=$?
fi

- if [ $ret -ne 0 ]; then
+ if (( ret )); then
warning "$(gettext "Failed to install built package(s).")"
return 0
fi
@@ -1127,34 +1127,34 @@ install_package() {

check_sanity() {
# check for no-no's in the build script
- if [ -z "$pkgname" ]; then
+ if [[ -z $pkgname ]]; then
error "$(gettext "%s is not allowed to be empty.")" "pkgname"
return 1
fi
- if [ -z "$pkgver" ]; then
+ if [[ -z $pkgver ]]; then
error "$(gettext "%s is not allowed to be empty.")" "pkgver"
return 1
fi
- if [ -z "$pkgrel" ]; then
+ if [[ -z $pkgrel ]]; then
error "$(gettext "%s is not allowed to be empty.")" "pkgrel"
return 1
fi
- if [ "${pkgname:0:1}" == "-" ]; then
+ if [[ ${pkgname:0:1} == "-" ]]; then
error "$(gettext "%s is not allowed to start with a hyphen.")" "pkgname"
return 1
fi
- if [ "$pkgver" != "${pkgver//-/}" ]; then
+ if [[ $pkgver != ${pkgver//-/} ]]; then
error "$(gettext "%s is not allowed to contain hyphens.")" "pkgver"
return 1
fi
- if [ "$pkgrel" != "${pkgrel//-/}" ]; then
+ if [[ $pkgrel != ${pkgrel//-/} ]]; then
error "$(gettext "%s is not allowed to contain hyphens.")" "pkgrel"
return 1
fi

- if [ "$arch" != 'any' ]; then
+ if [[ $arch != 'any' ]]; then
if ! in_array $CARCH ${arch[@]}; then
- if [ "$IGNOREARCH" -eq 0 ]; then
+ if (( ! IGNOREARCH )); then
error "$(gettext "%s is not available for the '%s' architecture.")" "$pkgbase" "$CARCH"
plain "$(gettext "Note that many packages may need a line added to their %s")" "$BUILDSCRIPT"
plain "$(gettext "such as arch=('%s').")" "$CARCH"
@@ -1165,7 +1165,7 @@ check_sanity() {

local provide
for provide in ${provides[@]}; do
- if [ $provide != ${provide//</} -o $provide != ${provide//>/} ]; then
+ if [[ $provide != ${provide//</} || $provide != ${provide//>/} ]]; then
error "$(gettext "Provides array cannot contain comparison (< or >) operators.")"
return 1
fi
@@ -1173,7 +1173,7 @@ check_sanity() {

local file
for file in "${backup[@]}"; do
- if [ "${file:0:1}" = "/" ]; then
+ if [[ ${file:0:1} = "/" ]]; then
error "$(gettext "Invalid backup entry : %s")" "$file"
return 1
fi
@@ -1187,12 +1187,12 @@ check_sanity() {
fi
done

- if [ "$install" -a ! -f "$install" ]; then
+ if [[ $install && ! -f $install ]]; then
error "$(gettext "Install scriptlet (%s) does not exist.")" "$install"
return 1
fi

- if [ -n "$changelog" -a ! -f "$changelog" ]; then
+ if [[ -n $changelog && ! -f $changelog ]]; then
error "$(gettext "Changelog file (%s) does not exist.")" "$changelog"
return 1
fi
@@ -1203,20 +1203,20 @@ check_sanity() {
known=0
# check if option matches a known option or its inverse
for kopt in ${packaging_options[@]} ${other_options[@]}; do
- if [ "${opt}" = "${kopt}" -o "${opt}" = "!${kopt}" ]; then
+ if [[ ${opt} = ${kopt} || ${opt} = "!${kopt}" ]]; then
known=1
fi
done
- if [ $known -eq 0 ]; then
+ if (( ! known )); then
error "$(gettext "options array contains unknown option '%s'")" "$opt"
valid_options=0
fi
done
- if [ $valid_options -eq 0 ]; then
+ if (( ! valid_options )); then
return 1
fi

- if [ "${#pkgname[@]}" -gt "1" ]; then
+ if (( ${#pkgname[@]} > 1 )); then
for pkg in ${pkgname[@]}; do
if [ "$(type -t package_${pkg})" != "function" ]; then
error "$(gettext "missing package function for split package '%s'")" "$pkg"
@@ -1233,42 +1233,42 @@ devel_check() {

# Do not update pkgver if --holdver is set, when building a source package,
# when reading PKGBUILD from pipe (-f), or if we cannot write to the file (-w)
- if [ "$HOLDVER" -eq 1 -o "$SOURCEONLY" -ne 0 -o ! -f "$BUILDFILE"
- -o ! -w "$BUILDFILE" ]; then
+ if (( HOLDVER || SOURCEONLY ))
+ || [[ ! -f $BUILDFILE || ! -w $BUILDFILE ]]; then
return
fi

- if [ -z "$FORCE_VER" ]; then
+ if [[ -z $FORCE_VER ]]; then
# Check if this is a svn/cvs/etc PKGBUILD; set $newpkgver if so.
# This will only be used on the first call to makepkg; subsequent
# calls to makepkg via fakeroot will explicitly pass the version
# number to avoid having to determine the version number twice.
# Also do a brief check to make sure we have the VCS tool available.
oldpkgver=$pkgver
- if [ -n "${_darcstrunk}" -a -n "${_darcsmod}" ] ; then
+ if [[ -n ${_darcstrunk} && -n ${_darcsmod} ]] ; then
[ $(type -p darcs) ] || return 0
msg "$(gettext "Determining latest darcs revision...")"
newpkgver=$(date +%Y%m%d)
- elif [ -n "${_cvsroot}" -a -n "${_cvsmod}" ] ; then
+ elif [[ -n ${_cvsroot} && -n ${_cvsmod} ]] ; then
[ $(type -p cvs) ] || return 0
msg "$(gettext "Determining latest cvs revision...")"
newpkgver=$(date +%Y%m%d)
- elif [ -n "${_gitroot}" -a -n "${_gitname}" ] ; then
+ elif [[ -n ${_gitroot} && -n ${_gitname} ]] ; then
[ $(type -p git) ] || return 0
msg "$(gettext "Determining latest git revision...")"
newpkgver=$(date +%Y%m%d)
- elif [ -n "${_svntrunk}" -a -n "${_svnmod}" ] ; then
+ elif [[ -n ${_svntrunk} && -n ${_svnmod} ]] ; then
[ $(type -p svn) ] || return 0
msg "$(gettext "Determining latest svn revision...")"
newpkgver=$(LC_ALL=C svn info $_svntrunk | sed -n 's/^Last Changed Rev: ([0-9]*)$/1/p')
- elif [ -n "${_bzrtrunk}" -a -n "${_bzrmod}" ] ; then
+ elif [[ -n ${_bzrtrunk} && -n ${_bzrmod} ]] ; then
[ $(type -p bzr) ] || return 0
msg "$(gettext "Determining latest bzr revision...")"
newpkgver=$(bzr revno ${_bzrtrunk})
- elif [ -n "${_hgroot}" -a -n "${_hgrepo}" ] ; then
+ elif [[ -n ${_hgroot} && -n ${_hgrepo} ]] ; then
[ $(type -p hg) ] || return 0
msg "$(gettext "Determining latest hg revision...")"
- if [ -d ./src/$_hgrepo ] ; then
+ if [[ -d ./src/$_hgrepo ]] ; then
cd ./src/$_hgrepo
hg pull
hg update
@@ -1281,7 +1281,7 @@ devel_check() {
cd ../../
fi

- if [ -n "$newpkgver" ]; then
+ if [[ -n $newpkgver ]]; then
msg2 "$(gettext "Version found: %s")" "$newpkgver"
fi

@@ -1301,9 +1301,9 @@ devel_update() {
# ...
# _foo=pkgver
#
- if [ -n "$newpkgver" ]; then
- if [ "$newpkgver" != "$pkgver" ]; then
- if [ -f "$BUILDFILE" -a -w "$BUILDFILE" ]; then
+ if [[ -n $newpkgver ]]; then
+ if [[ $newpkgver != $pkgver ]]; then
+ if [[ -f $BUILDFILE && -w $BUILDFILE ]]; then
@SEDINPLACE@ "s/^pkgver=[^ ]*/pkgver=$newpkgver/" "$BUILDFILE"
@SEDINPLACE@ "s/^pkgrel=[^ ]*/pkgrel=1/" "$BUILDFILE"
source "$BUILDFILE"
@@ -1322,7 +1322,7 @@ backup_package_variables() {
restore_package_variables() {
for var in ${splitpkg_overrides[@]}; do
indirect="${var}_backup"
- if [ -n "${!indirect}" ]; then
+ if [[ -n ${!indirect} ]]; then
eval "${var}=("${$indirect[@]}")"
else
unset ${var}
@@ -1337,21 +1337,21 @@ parse_options() {
local ret=0;
local unused_options=""

- while [ -n "$1" ]; do
- if [ ${1:0:2} = '--' ]; then
- if [ -n "${1:2}" ]; then
+ while [[ -n $1 ]]; do
+ if [[ ${1:0:2} = '--' ]]; then
+ if [[ -n ${1:2} ]]; then
local match=""
for i in ${long_options//,/ }; do
- if [ ${1:2} = ${i//:} ]; then
+ if [[ ${1:2} = ${i//:} ]]; then
match=$i
break
fi
done
- if [ -n "$match" ]; then
- if [ ${1:2} = $match ]; then
+ if [[ -n $match ]]; then
+ if [[ ${1:2} = $match ]]; then
printf ' %s' "$1"
else
- if [ -n "$2" ]; then
+ if [[ -n $2 ]]; then
printf ' %s' "$1"
shift
printf " '%s'" "$1"
@@ -1368,15 +1368,15 @@ parse_options() {
shift
break
fi
- elif [ ${1:0:1} = '-' ]; then
+ elif [[ ${1:0:1} = '-' ]]; then
for ((i=1; i<${#1}; i++)); do
- if [[ "$short_options" =~ "${1:i:1}" ]]; then
- if [[ "$short_options" =~ "${1:i:1}:" ]]; then
- if [ -n "${1:$i+1}" ]; then
+ if [[ $short_options =~ ${1:i:1} ]]; then
+ if [[ $short_options =~ "${1:i:1}:" ]]; then
+ if [[ -n ${1:$i+1} ]]; then
printf ' -%s' "${1:i:1}"
printf " '%s'" "${1:$i+1}"
else
- if [ -n "$2" ]; then
+ if [[ -n $2 ]]; then
printf ' -%s' "${1:i:1}"
shift
printf " '%s'" "${1}"
@@ -1401,13 +1401,13 @@ parse_options() {
done

printf " --"
- if [ -n "$unused_options" ]; then
+ if [[ -n $unused_options ]]; then
for i in ${unused_options[@]}; do
printf ' %s' "$i"
done
fi
- if [ -n "$1" ]; then
- while [ -n "$1" ]; do
+ if [[ -n $1 ]]; then
+ while [[ -n $1 ]]; do
printf " '%s'" "${1}"
shift
done
@@ -1540,7 +1540,7 @@ _SRCDEST=${SRCDEST}
MAKEPKG_CONF=${MAKEPKG_CONF:-$confdir/makepkg.conf}

# Source the config file; fail if it is not found
-if [ -r "$MAKEPKG_CONF" ]; then
+if [[ -r $MAKEPKG_CONF ]]; then
source "$MAKEPKG_CONF"
else
error "$(gettext "%s not found.")" "$MAKEPKG_CONF"
@@ -1549,13 +1549,13 @@ else
fi

# Source user-specific makepkg.conf overrides
-if [ -r ~/.makepkg.conf ]; then
+if [[ -r ~/.makepkg.conf ]]; then
source ~/.makepkg.conf
fi

# check if messages are to be printed using color
unset ALL_OFF BOLD BLUE GREEN RED YELLOW
-if [ -t 2 -a ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then
+if [[ -t 2 && ! $USE_COLOR = "n" && $(check_buildenv color) = "y" ]]; then
ALL_OFF="$(tput sgr0)"
BOLD="$(tput bold)"
BLUE="${BOLD}$(tput setaf 4)"
@@ -1572,23 +1572,23 @@ SRCDEST=${_SRCDEST:-$SRCDEST}
SRCDEST=${SRCDEST:-$startdir} #default to $startdir if undefined


-if [ "$HOLDVER" -eq 1 -a -n "$FORCE_VER" ]; then
+if (( HOLDVER )) && [[ -n $FORCE_VER ]]; then
# The '' is here to prevent gettext from thinking --holdver is an option
error "$(gettext "--holdver and --forcever cannot both be specified" )"
exit 1
fi

-if [ "$CLEANCACHE" -eq 1 ]; then
+if (( CLEANCACHE )); then
#fix flyspray feature request #5223
- if [ -n "$SRCDEST" -a "$SRCDEST" != "$startdir" ]; then
+ if [[ -n $SRCDEST && $SRCDEST != $startdir ]]; then
msg "$(gettext "Cleaning up ALL files from %s.")" "$SRCDEST"
echo -n "$(gettext " Are you sure you wish to do this? ")"
echo -n "$(gettext "[y/N]")"
read answer
answer="${answer^^}"
- if [ "$answer" = "$(gettext "YES")" -o "$answer" = "$(gettext "Y")" ]; then
+ if [[ $answer = $(gettext YES) || $answer = $(gettext Y) ]]; then
rm "$SRCDEST"/*
- if [ $? -ne 0 ]; then
+ if (( $? )); then
error "$(gettext "Problem removing files; you may not have correct permissions in %s")" "$SRCDEST"
exit 1
else
@@ -1609,40 +1609,39 @@ if [ "$CLEANCACHE" -eq 1 ]; then
fi
fi

-if [ "$INFAKEROOT" -eq 0 ]; then
- if [ $EUID -eq 0 -a "$ASROOT" -eq 0 ]; then
+if (( ! INFAKEROOT )); then
+ if (( EUID == 0 && ! ASROOT )); then
# Warn those who like to live dangerously.
error "$(gettext "Running makepkg as root is a BAD idea and can cause")"
plain "$(gettext "permanent, catastrophic damage to your system. If you")"
plain "$(gettext "wish to run as root, please use the --asroot option.")"
exit 1 # $E_USER_ABORT
- elif [ $EUID -gt 0 -a "$ASROOT" -eq 1 ]; then
+ elif (( EUID > 0 && ASROOT )); then
# Warn those who try to use the --asroot option when they are not root
error "$(gettext "The --asroot option is meant for the root user only.")"
plain "$(gettext "Please rerun makepkg without the --asroot flag.")"
exit 1 # $E_USER_ABORT
- elif [ "$(check_buildenv fakeroot)" = "y" -a $EUID -gt 0 ]; then
+ elif [[ $(check_buildenv fakeroot) = "y" ]] && (( EUID > 0 )); then
if [ ! $(type -p fakeroot) ]; then
error "$(gettext "Fakeroot must be installed if using the 'fakeroot' option")"
plain "$(gettext "in the BUILDENV array in %s.")" "$MAKEPKG_CONF"
exit 1
fi
- elif [ $EUID -gt 0 ]; then
+ elif (( EUID > 0 )); then
warning "$(gettext "Running makepkg as an unprivileged user will result in non-root")"
plain "$(gettext "ownership of the packaged files. Try using the fakeroot environment by")"
plain "$(gettext "placing 'fakeroot' in the BUILDENV array in %s.")" "$MAKEPKG_CONF"
sleep 1
fi
else
- if [ -z "$FAKEROOTKEY" ]; then
+ if [[ -z $FAKEROOTKEY ]]; then
error "$(gettext "Do not use the '-F' option. This option is only for use by makepkg.")"
exit 1 # TODO: error code
fi
fi

# check for sudo if we will need it during makepkg execution
-if [ "$ASROOT" -eq 0
- -a ( "$DEP_BIN" -eq 1 -o "$RMDEPS" -eq 1 -o "$INSTALL" -eq 1 ) ]; then
+if (( ! ASROOT && ( DEP_BIN || RMDEPS || INSTALL ) )); then
if [ ! "$(type -p sudo)" ]; then
error "$(gettext "Cannot find the sudo binary! Is sudo installed?")"
plain "$(gettext "Missing dependencies cannot be installed or removed as a normal user")"
@@ -1656,8 +1655,8 @@ unset md5sums replaces depends conflicts backup source install changelog build
unset makedepends optdepends options noextract

BUILDFILE=${BUILDFILE:-$BUILDSCRIPT}
-if [ ! -f "$BUILDFILE" ]; then
- if [ -t 0 ]; then
+if [[ ! -f $BUILDFILE ]]; then
+ if [[ -t 0 ]]; then
error "$(gettext "%s does not exist.")" "$BUILDFILE"
exit 1
else
@@ -1667,18 +1666,18 @@ if [ ! -f "$BUILDFILE" ]; then
fi
else
crlftest=$(file "$BUILDFILE" | grep -F 'CRLF' || true)
- if [ -n "$crlftest" ]; then
+ if [[ -n $crlftest ]]; then
error "$(gettext "%s contains CRLF characters and cannot be sourced.")" "$BUILDFILE"
exit 1
fi

- if [ "${BUILDFILE:0:1}" != "/" ]; then
+ if [[ ${BUILDFILE:0:1} != "/" ]]; then
BUILDFILE="$startdir/$BUILDFILE"
fi
source "$BUILDFILE"
fi

-if [ "$GENINTEG" -eq 1 ]; then
+if (( GENINTEG )); then
mkdir -p "$srcdir"
cd "$srcdir"
download_sources
@@ -1700,17 +1699,17 @@ check_sanity || exit 1
devel_check
devel_update

-if [ "${#pkgname[@]}" -gt "1" ]; then
+if (( ${#pkgname[@]} > 1 )); then
SPLITPKG=1
fi

pkgbase=${pkgbase:-${pkgname[0]}}

-if [ "$SPLITPKG" -eq 0 ]; then
- if [ ( -f "$PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
- -o -f "$PKGDEST/${pkgname}-${pkgver}-${pkgrel}-any${PKGEXT}" )
- -a "$FORCE" -eq 0 -a "$SOURCEONLY" -eq 0 -a "$NOBUILD" -eq 0 ]; then
- if [ "$INSTALL" -eq 1 ]; then
+if (( ! SPLITPKG )); then
+ if [[ -f $PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
+ || -f $PKGDEST/${pkgname}-${pkgver}-${pkgrel}-any${PKGEXT} ]]
+ && ! (( FORCE || SOURCEONLY || NOBUILD )); then
+ if (( INSTALL )); then
warning "$(gettext "A package has already been built, installing existing package...")"
install_package
exit $?
@@ -1723,16 +1722,16 @@ else
allpkgbuilt=1
somepkgbuilt=0
for pkg in ${pkgname[@]}; do
- if [ ( -f "$PKGDEST/${pkg}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
- -o -f "$PKGDEST/${pkg}-${pkgver}-${pkgrel}-any${PKGEXT}" ) ]; then
+ if [[ -f $PKGDEST/${pkg}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
+ || -f $PKGDEST/${pkg}-${pkgver}-${pkgrel}-any${PKGEXT} ]]; then
somepkgbuilt=1
else
allpkgbuilt=0
fi
done
- if [ "$FORCE" -eq 0 -a "$SOURCEONLY" -eq 0 -a "$NOBUILD" -eq 0 ]; then
- if [ "$allpkgbuilt" -eq 1 ]; then
- if [ "$INSTALL" -eq 1 ]; then
+ if ! (( FORCE || SOURCEONLY || NOBUILD )); then
+ if (( allpkgbuilt )); then
+ if (( INSTALL )); then
warning "$(gettext "The package group has already been built, installing existing packages...")"
install_package
exit $?
@@ -1741,7 +1740,7 @@ else
exit 1
fi
fi
- if [ "$somepkgbuilt" -eq 1 ]; then
+ if (( somepkgbuilt )); then
error "$(gettext "Part of the package group has already been built. (use -f to overwrite)")"
exit 1
fi
@@ -1750,10 +1749,10 @@ else
fi

# Run the bare minimum in fakeroot
-if [ "$INFAKEROOT" -eq 1 ]; then
- if [ "$SPLITPKG" -eq 0 ]; then
- if [ "$PKGFUNC" -eq 0 ]; then
- if [ "$REPKG" -eq 0 ]; then
+if (( INFAKEROOT )); then
+ if (( ! SPLITPKG )); then
+ if (( ! PKGFUNC )); then
+ if (( ! REPKG )); then
run_build
tidy_install
fi
@@ -1782,9 +1781,9 @@ fi
msg "$(gettext "Making package: %s")" "$pkgbase $pkgver-$pkgrel ($(date))"

# if we are creating a source-only package, go no further
-if [ "$SOURCEONLY" -ne 0 ]; then
- if [ -f "$PKGDEST/${pkgbase}-${pkgver}-${pkgrel}${SRCEXT}"
- -a "$FORCE" -eq 0 ]; then
+if (( SOURCEONLY )); then
+ if [[ -f $PKGDEST/${pkgbase}-${pkgver}-${pkgrel}${SRCEXT} ]]
+ && (( ! FORCE )); then
error "$(gettext "A package has already been built. (use -f to overwrite)")"
exit 1
fi
@@ -1794,9 +1793,9 @@ if [ "$SOURCEONLY" -ne 0 ]; then
fi

# fix flyspray bug #5973
-if [ "$NODEPS" -eq 1 -o "$NOBUILD" -eq 1 -o "$REPKG" -eq 1 ]; then
+if (( NODEPS || NOBUILD || REPKG )); then
# no warning message needed for nobuild, repkg
- if [ "$NODEPS" -eq 1 ]; then
+ if (( NODEPS )); then
warning "$(gettext "Skipping dependency checks.")"
fi
elif [ $(type -p pacman) ]; then
@@ -1809,7 +1808,7 @@ elif [ $(type -p pacman) ]; then
msg "$(gettext "Checking Buildtime Dependencies...")"
resolve_deps ${makedepends[@]} || deperr=1

- if [ $deperr -eq 1 ]; then
+ if (( deperr )); then
error "$(gettext "Could not resolve all dependencies.")"
exit 1
fi
@@ -1824,19 +1823,19 @@ umask 0022
mkdir -p "$srcdir"
cd "$srcdir"

-if [ "$NOEXTRACT" -eq 1 ]; then
+if (( NOEXTRACT )); then
warning "$(gettext "Skipping source retrieval -- using existing src/ tree")"
warning "$(gettext "Skipping source integrity checks -- using existing src/ tree")"
warning "$(gettext "Skipping source extraction -- using existing src/ tree")"

- if [ "$NOEXTRACT" -eq 1 -a -z "$(ls "$srcdir" 2>/dev/null)" ]; then
+ if (( NOEXTRACT )) && [[ -z $(ls "$srcdir" 2>/dev/null) ]]; then
error "$(gettext "The source directory is empty, there is nothing to build!")"
plain "$(gettext "Aborting...")"
exit 1
fi
-elif [ "$REPKG" -eq 1 ]; then
- if [ "$PKGFUNC" -eq 0 -a "$SPLITPKG" -eq 0
- -a ( ! -d "$pkgdir" -o -z "$(ls "$pkgdir" 2>/dev/null)" ) ]; then
+elif (( REPKG )); then
+ if (( ! PKGFUNC && ! SPLITPKG ))
+ && [[ ! -d $pkgdir || -z $(ls "$pkgdir" 2>/dev/null) ]]; then
error "$(gettext "The package directory is empty, there is nothing to repackage!")"
plain "$(gettext "Aborting...")"
exit 1
@@ -1847,13 +1846,12 @@ else
extract_sources
fi

-if [ "$NOBUILD" -eq 1 ]; then
+if (( NOBUILD )); then
msg "$(gettext "Sources are ready.")"
exit 0 #E_OK
else
# check for existing pkg directory; don't remove if we are repackaging
- if [ -d "$pkgdir"
- -a ( "$REPKG" -eq 0 -o "$PKGFUNC" -eq 1 -o "$SPLITPKG" -eq 1 ) ]; then
+ if [[ -d $pkgdir ]] && (( ! REPKG || PKGFUNC || SPLITPKG )); then
msg "$(gettext "Removing existing pkg/ directory...")"
rm -rf "$pkgdir"
fi
@@ -1861,16 +1859,16 @@ else
cd "$startdir"

# if we are root or if fakeroot is not enabled, then we don't use it
- if [ "$(check_buildenv fakeroot)" != "y" -o $EUID -eq 0 ]; then
- if [ "$REPKG" -eq 0 ]; then
+ if [[ $(check_buildenv fakeroot) != "y" ]] || (( EUID == 0 )); then
+ if (( ! REPKG )); then
devel_update
run_build
fi
- if [ "$SPLITPKG" -eq 0 ]; then
- if [ "$PKGFUNC" -eq 1 ]; then
+ if (( ! SPLITPKG )); then
+ if (( PKGFUNC )); then
run_package
tidy_install
- elif [ "$REPKG" -eq 0 ]; then
+ elif (( ! REPKG )); then
tidy_install
fi
create_package
@@ -1887,7 +1885,7 @@ else
done
fi
else
- if [ "$REPKG" -eq 0 -a ( "$PKGFUNC" -eq 1 -o "$SPLITPKG" -eq 1 ) ]; then
+ if (( ! REPKG && ( PKGFUNC || SPLITPKG ) )); then
devel_update
run_build
cd "$startdir"
@@ -1895,7 +1893,7 @@ else

msg "$(gettext "Entering fakeroot environment...")"

- if [ -n "$newpkgver" ]; then
+ if [[ -n $newpkgver ]]; then
fakeroot -- $0 --forcever $newpkgver -F "${ARGLIST[@]}" || exit $?
else
fakeroot -- $0 -F "${ARGLIST[@]}" || exit $?
--
1.6.5.2
 
Old 11-16-2009, 12:18 AM
Dan McGee
 
Default Changing [ to [[ and (( - Part Two - Amended

On Sun, Nov 15, 2009 at 8:40 AM, Allan McRae <allan@archlinux.org> wrote:
> I have looked at the two patches and the good news is that I can spot
> nothing wrong! *I just have a few comments about style that I would like to
> discuss.
>
>
> I would like to get some more consistency in quoting. e.g. here are some
> varied tests:
>
> - * * * if [ "$ret" != '?' ]; then
> + * * * if [[ $ret != '?' ]]; then
>
> + * * * * * * * if [[ $ret != "?" ]]; then
> + * * * * * * * * * * * if [[ $ret = y ]]; then
>
> - * * * * * * * if [ "$cmd" = "bsdtar" ]; then
> + * * * * * * * if [[ $cmd = bsdtar ]]; then
>
> - * * * if [ "$(check_option makeflags)" = "n" ]; then
> + * * * if [[ $(check_option makeflags) = "n" ]]; then
>
> - * * * if [ "$arch" != 'any' ]; then
> + * * * if [[ $arch != 'any' ]]; then
>
> - * * * * * * * if [ ${1:0:2} = '--' ]; then
> + * * * * * * * if [[ ${1:0:2} = '--' ]]; then
>
> - * * * * * * * * * * * if [ -d ./src/$_hgrepo ] ; then
> + * * * * * * * * * * * if [[ -d ./src/$_hgrepo ]] ; then
>
> -if [ -r ~/.makepkg.conf ]; then
> +if [[ -r ~/.makepkg.conf ]]; then
>
> My suggestion is that any thing with text (i.e. not a pure variable) is
> quoted. *I know this is excessive in some cases (e.g. the last case) but the
> only exception I would be happy with is tests that are pure paths with only
> added "/" (e.g. $startdir/$file). *Even then, maybe quotes would be nicer...
> *I am happy to be debated on this.
>
>
>
> There should be quotes kept in the gettext calls in this test:
> - * * * * * * * if [ "$answer" = "$(gettext "YES")" -o "$answer" =
> "$(gettext "Y")" ]; then
> + * * * * * * * if [[ $answer = $(gettext YES) || $answer = $(gettext Y) ]];
> then
>
>
>
> Why is EUID tested against 0 explicitly when all other tests for zero just
> use ! EUID? e.g.
>
> - * * * if [ $EUID -eq 0 -a "$ASROOT" -eq 0 ]; then
> + * * * if (( EUID == 0 && ! ASROOT )); then
>
> In fact, I quite like that things are explicitly tested in this case.
>
> I wonder if the tests of return values should explicitly test for "== 0" or
> "!= 0". e.g. these test have become less clear to me when I read the code.
>
> - * * * if [ $ret -gt 0 ]; then
> + * * * if (( ret )); then
>
> - * * * elif [ $ret -ne 0 ]; then
> + * * * elif (( ret )); then
>
> Note that these explicitly test for "== 0" or "> 0" and I think that is much
> clearer:
>
> - * * * [ $# -gt 0 ] || return
> + * * * (( $# > 0 )) || return
>
> - * * * [ $# -eq 0 ] && return $R_DEPS_SATISFIED
> + * * * (( $# == 0 )) && return $R_DEPS_SATISFIED

As a side note, in the pacman C code we try to stick to a convention
where if testing for 0 makes sense, do it explicitly. This comes up
often in the case of strcmp() == 0, which means "these two strings
match". e.g.
if(strcmp(pkgname, name) == 0) {
instead of
if(!strcmp(pkgname, name)) {

I like the logic here of doing explicit declarations of 0 in the EUID
case. For a true boolean in the other cases, I'm fine with dropping
the zero check.

-Dan
 

Thread Tools




All times are GMT. The time now is 02:03 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org