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-11-2009, 10:14 PM
Isaac Good
 
Default Changing [ to [[ and ((

>From f40b051c1c649889a13f35965fa8f8decd505b47 Mon Sep 17 00:00:00 2001
From: Isaac Good <pacman@isaac.otherinbox.com>
Date: Wed, 11 Nov 2009 16:47:43 -0500
Subject: [PATCH 1/2] Changing [ to [[ and ((

First 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 traps

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

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 25fb8d9..8a80d6c 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -112,7 +112,7 @@ error() {
# the fakeroot call, the error message will be printed by the main call.
##
trap_exit() {
- if [ "$INFAKEROOT" -eq 0 ]; then
+ if (( ! INFAKEROOT )); then
echo
error "$@"
fi
@@ -126,21 +126,21 @@ trap_exit() {
clean_up() {
local EXIT_CODE=$?

- if [ "$INFAKEROOT" -eq 1 ]; then
+ if (( INFAKEROOT )); then
# Don't clean up when leaving fakeroot, we're not done yet.
return
fi

- if [ $EXIT_CODE -eq 0 -a "$CLEANUP" -eq 1 ]; then
+ if (( ! EXIT_CODE && CLEANUP )); then
# If it's a clean exit and -c/--clean has been passed...
msg "$(gettext "Cleaning up...")"
rm -rf "$pkgdir" "$srcdir"
- if [ -n "$pkgbase" ]; then
+ if [[ -n $pkgbase ]]; then
# Can't do this unless the BUILDSCRIPT has been sourced.
rm -f "${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-build.log"*
- if [ "$PKGFUNC" -eq 1 ]; then
+ if (( PKGFUNC )); then
rm -f "${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-package.log"*
- elif [ "$SPLITPKG" -eq 1 ]; then
+ elif (( SPLITPKG )); then
for pkg in ${pkgname[@]}; do
rm -f "${pkg}-${pkgver}-${pkgrel}-${CARCH}-package.log"*
done
@@ -190,14 +190,14 @@ get_url() {
##
check_option() {
local ret=$(in_opt_array "$1" ${options[@]})
- if [ "$ret" != '?' ]; then
+ if [[ $ret != '?' ]]; then
echo $ret
return
fi

# fall back to makepkg.conf options
ret=$(in_opt_array "$1" ${OPTIONS[@]})
- if [ "$ret" != '?' ]; then
+ if [[ $ret != '?' ]]; then
echo $ret
return
fi
@@ -231,10 +231,10 @@ in_opt_array() {
local opt
for opt in "$@"; do
opt="${opt,,}"
- if [ "$opt" = "$needle" ]; then
+ if [[ $opt = $needle ]]; then
echo 'y' # Enabled
return
- elif [ "$opt" = "!$needle" ]; then
+ elif [[ $opt = "!$needle" ]]; then
echo 'n' # Disabled
return
fi
@@ -251,10 +251,10 @@ in_opt_array() {
##
in_array() {
local needle=$1; shift
- [ -z "$1" ] && return 1 # Not Found
+ [[ -z $1 ]] && return 1 # Not Found
local item
for item in "$@"; do
- [ "$item" = "$needle" ] && return 0 # Found
+ [[ $item = $needle ]] && return 0 # Found
done
return 1 # Not Found
}
@@ -268,14 +268,14 @@ get_downloadclient() {
local i
for i in "${DLAGENTS[@]}"; do
local handler="${i%%::*}"
- if [ "$proto" = "$handler" ]; then
+ if [[ $proto = $handler ]]; then
agent="${i##*::}"
break
fi
done

# if we didn't find an agent, return an error
- if [ -z "$agent" ]; then
+ if [[ -z $agent ]]; then
error "$(gettext "There is no agent set up to handle %s URLs. Check %s.")" "$proto" "$MAKEPKG_CONF"
plain "$(gettext "Aborting...")"
exit 1 # $E_CONFIG_ERROR
@@ -283,7 +283,7 @@ get_downloadclient() {

# ensure specified program is installed
local program="${agent%% *}"
- if [ ! -x "$program" ]; then
+ if [[ ! -x $program ]]; then
local baseprog=$(basename $program)
error "$(gettext "The download program %s is not installed.")" "$baseprog"
plain "$(gettext "Aborting...")"
@@ -317,25 +317,25 @@ download_file() {

local ret=0
eval "$dlcmd || ret=$?"
- if [ $ret -gt 0 ]; then
- [ ! -s "$dlfile" ] && rm -f -- "$dlfile"
+ if (( ret )); then
+ [[ ! -s $dlfile ]] && rm -f -- "$dlfile"
return $ret
fi

# rename the temporary download file to the final destination
- if [ "$dlfile" != "$file" ]; then
+ if [[ $dlfile != $file ]]; then
mv -f "$SRCDEST/$dlfile" "$SRCDEST/$file"
fi
}

check_deps() {
- [ $# -gt 0 ] || return
+ (( $# )) || return

pmout=$(pacman $PACMAN_OPTS -T "$@")
ret=$?
- if [ $ret -eq 127 ]; then #unresolved deps
+ if (( ret == 127 )); then #unresolved deps
echo "$pmout"
- elif [ $ret -ne 0 ]; then
+ elif (( ret )); then
error "$(gettext "Pacman returned a fatal error (%i): %s")" "$ret" "$pmout"
exit 1
fi
@@ -345,26 +345,26 @@ handle_deps() {
local R_DEPS_SATISFIED=0
local R_DEPS_MISSING=1

- [ $# -eq 0 ] && return $R_DEPS_SATISFIED
+ (( $# == 0 )) && return $R_DEPS_SATISFIED

local deplist="$*"

- if [ "$DEP_BIN" -eq 0 ]; then
+ if (( ! DEP_BIN )); then
return $R_DEPS_MISSING
fi

- if [ "$DEP_BIN" -eq 1 ]; then
+ if (( DEP_BIN )); then
# install missing deps from binary packages (using pacman -S)
msg "$(gettext "Installing missing dependencies...")"
local ret=0

- if [ "$ASROOT" -eq 0 ]; then
+ if (( ! ASROOT )); then
sudo pacman $PACMAN_OPTS -S --asdeps $deplist || ret=$?
else
pacman $PACMAN_OPTS -S --asdeps $deplist || ret=$?
fi

- if [ $ret -ne 0 ]; then
+ if (( ret )); then
error "$(gettext "Pacman failed to install missing dependencies.")"
exit 1 # TODO: error code
fi
@@ -385,7 +385,7 @@ resolve_deps() {
local R_DEPS_MISSING=1

local deplist="$(check_deps $*)"
- if [ -z "$deplist" ]; then
+ if [[ -z $deplist ]]; then
return $R_DEPS_SATISFIED
fi

@@ -393,8 +393,8 @@ resolve_deps() {
pkgdeps="$pkgdeps $deplist"
# check deps again to make sure they were resolved
deplist="$(check_deps $*)"
- [ -z "$deplist" ] && return $R_DEPS_SATISFIED
- elif [ "$DEP_BIN" -eq 1 ]; then
+ [[ -z $deplist ]] && return $R_DEPS_SATISFIED
+ elif (( DEP_BIN )); then
error "$(gettext "Failed to install all missing dependencies.")"
fi

@@ -410,8 +410,8 @@ resolve_deps() {
# fix flyspray bug #5923
remove_deps() {
# $pkgdeps is a GLOBAL variable, set by resolve_deps()
- [ "$RMDEPS" -eq 0 ] && return
- [ -z "$pkgdeps" ] && return
+ (( ! RMDEPS )) && return
+ [[ -z $pkgdeps ]] && return

local dep depstrip deplist
deplist=""
@@ -422,14 +422,14 @@ remove_deps() {

msg "Removing installed dependencies..."
local ret=0
- if [ "$ASROOT" -eq 0 ]; then
+ if (( ! ASROOT )); then
sudo pacman $PACMAN_OPTS -Rns $deplist || ret=$?
else
pacman $PACMAN_OPTS -Rns $deplist || ret=$?
fi

# Fixes FS#10039 - exit cleanly as package has built successfully
- if [ $ret -ne 0 ]; then
+ if (( ret )); then
warning "$(gettext "Failed to remove installed dependencies.")"
return 0
fi
@@ -438,7 +438,7 @@ remove_deps() {
download_sources() {
msg "$(gettext "Retrieving Sources...")"

- if [ ! -w "$SRCDEST" ] ; then
+ if [[ ! -w $SRCDEST ]] ; then
error "$(gettext "You do not have write permission to store downloads in %s.")" "$SRCDEST"
plain "$(gettext "Aborting...")"
exit 1
@@ -450,12 +450,12 @@ download_sources() {
for netfile in "${source[@]}"; do
local file=$(get_filename "$netfile")
local url=$(get_url "$netfile")
- if [ -f "$startdir/$file" ]; then
+ if [[ -f "$startdir/$file" ]]; then
msg2 "$(gettext "Found %s in build dir")" "$file"
rm -f "$srcdir/$file"
ln -s "$startdir/$file" "$srcdir/"
continue
- elif [ -f "$SRCDEST/$file" ]; then
+ elif [[ -f "$SRCDEST/$file" ]]; then
msg2 "$(gettext "Using cached copy of %s")" "$file"
rm -f "$srcdir/$file"
ln -s "$SRCDEST/$file" "$srcdir/"
@@ -463,7 +463,7 @@ download_sources() {
fi

# if we get here, check to make sure it was a URL, else fail
- if [ "$file" = "$url" ]; then
+ if [[ $file = $url ]]; then
error "$(gettext "%s was not found in the build directory and is not a URL.")" "$file"
exit 1 # $E_MISSING_FILE
fi
@@ -475,7 +475,7 @@ download_sources() {
# fix flyspray bug #3289
local ret=0
download_file "$dlclient" "$url" "$file" || ret=$?
- if [ $ret -gt 0 ]; then
+ if (( ret )); then
error "$(gettext "Failure while downloading %s")" "$file"
plain "$(gettext "Aborting...")"
exit 1
@@ -512,7 +512,7 @@ generate_checksums() {

local i=0;
local indent='
- while [ $i -lt $((${#integ}+6)) ]; do
+ while [[ $i -lt $((${#integ}+6)) ]]; do
indent="$indent "
i=$(($i+1))
done
@@ -521,8 +521,8 @@ generate_checksums() {
for netfile in "${source[@]}"; do
local file="$(get_filename "$netfile")"

- if [ ! -f "$file" ] ; then
- if [ ! -f "$SRCDEST/$file" ] ; then
+ if [[ ! -f $file ]] ; then
+ if [[ ! -f "$SRCDEST/$file" ]] ; then
error "$(gettext "Unable to find source file %s to generate checksum.")" "$file"
plain "$(gettext "Aborting...")"
exit 1
@@ -533,10 +533,10 @@ generate_checksums() {

local sum="$(openssl dgst -${integ} "$file")"
sum=${sum##* }
- [ $ct -gt 0 ] && echo -n "$indent"
+ (( ct )) && echo -n $indent
echo -n "'$sum'"
ct=$(($ct+1))
- [ $ct -lt $numsrc ] && echo
+ (( $ct < $numsrc )) && echo
done

echo ")"
@@ -544,7 +544,7 @@ generate_checksums() {
}

check_checksums() {
- [ ${#source[@]} -eq 0 ] && return 0
+ (( ! ${#source[@]} )) && return 0

if [ ! $(type -p openssl) ]; then
error "$(gettext "Cannot find openssl.")"
@@ -555,7 +555,7 @@ check_checksums() {
local integ required
for integ in md5 sha1 sha256 sha384 sha512; do
local integrity_sums=($(eval echo "${${integ}sums[@]}"))
- if [ ${#integrity_sums[@]} -eq ${#source[@]} ]; then
+ if (( ${#integrity_sums[@]} == ${#source[@]} )); then
msg "$(gettext "Validating source files with %s...")" "${integ}sums"
correlation=1
local errors=0
@@ -566,8 +566,8 @@ check_checksums() {
file="$(get_filename "$file")"
echo -n " $file ... " >&2

- if [ ! -f "$file" ] ; then
- if [ ! -f "$SRCDEST/$file" ] ; then
+ if [[ ! -f $file ]] ; then
+ if [[ ! -f "$SRCDEST/$file" ]] ; then
echo "$(gettext "NOT FOUND")" >&2
errors=1
found=0
@@ -576,11 +576,11 @@ check_checksums() {
fi
fi

- if [ $found -gt 0 ] ; then
+ if (( $found )) ; then
local expectedsum="${integrity_sums[$idx],,}"
local realsum="$(openssl dgst -${integ} "$file")"
realsum="${realsum##* }"
- if [ "$expectedsum" = "$realsum" ]; then
+ if [[ $expectedsum = $realsum ]]; then
echo "$(gettext "Passed")" >&2
else
echo "$(gettext "FAILED")" >&2
@@ -591,18 +591,18 @@ check_checksums() {
idx=$((idx + 1))
done

- if [ $errors -gt 0 ]; then
+ if (( errors )); then
error "$(gettext "One or more files did not pass the validity check!")"
exit 1 # TODO: error code
fi
- elif [ ${#integrity_sums[@]} -gt 0 ]; then
+ elif (( ${#integrity_sums[@]} )); then
error "$(gettext "Integrity checks (%s) differ in size from the source array.")" "$integ"
exit 1 # TODO: error code
fi
done

- if [ $correlation -eq 0 ]; then
- if [ $SKIPINTEG -eq 1 ]; then
+ if (( ! correlation )); then
+ if (( SKIPINTEG )); then
warning "$(gettext "Integrity checks are missing.")"
else
error "$(gettext "Integrity checks are missing.")"
@@ -622,8 +622,8 @@ extract_sources() {
continue
fi

- if [ ! -f "$file" ] ; then
- if [ ! -f "$SRCDEST/$file" ] ; then
+ if [[ ! -f $file ]] ; then
+ if [[ ! -f "$SRCDEST/$file" ]] ; then
error "$(gettext "Unable to find source file %s for extraction.")" "$file"
plain "$(gettext "Aborting...")"
exit 1
@@ -662,31 +662,31 @@ extract_sources() {

local ret=0
msg2 "$(gettext "Extracting %s with %s")" "$file" "$cmd"
- if [ "$cmd" = "bsdtar" ]; then
+ if [[ $cmd = bsdtar ]]; then
$cmd -xf "$file" || ret=?
else
rm -f "${file%.*}"
$cmd -dcf "$file" > "${file%.*}" || ret=?
fi
- if [ $ret -ne 0 ]; then
+ if (( ret )); then
error "$(gettext "Failed to extract %s")" "$file"
plain "$(gettext "Aborting...")"
exit 1
fi
done

- if [ $EUID -eq 0 ]; then
+ if (( EUID == 0 )); then
# change perms of all source files to root user & root group
chown -R 0:0 "$srcdir"
fi
}

error_function() {
- if [ -p "$logpipe" ]; then
+ if [[ -p $logpipe ]]; then
rm "$logpipe"
fi
# first exit all subshells, then print the error
- if [ $BASH_SUBSHELL -eq 0 ]; then
+ if (( ! BASH_SUBSHELL )); then
plain "$(gettext "Aborting...")"
remove_deps
fi
@@ -694,13 +694,13 @@ error_function() {
}

run_function() {
- if [ -z "$1" ]; then
+ if [[ -z $1 ]]; then
return 1
fi
pkgfunc="$1"

# clear user-specified makeflags if requested
- if [ "$(check_option makeflags)" = "n" ]; then
+ if [[ "$(check_option makeflags)" = "n" ]]; then
MAKEFLAGS=""
fi

@@ -713,12 +713,12 @@ run_function() {
local shellopts=$(shopt -p)

local ret=0
- if [ "$LOGGING" -eq 1 ]; then
+ if (( LOGGING )); then
BUILDLOG="${startdir}/${pkgname}-${pkgver}-${pkgrel}-${CARCH}-$pkgfunc.log"
- if [ -f "$BUILDLOG" ]; then
+ if [[ -f $BUILDLOG ]]; then
local i=1
while true; do
- if [ -f "$BUILDLOG.$i" ]; then
+ if [[ -f "$BUILDLOG.$i" ]]; then
i=$(($i +1))
else
break
@@ -752,24 +752,24 @@ run_function() {

run_build() {
# use distcc if it is requested (check buildenv and PKGBUILD opts)
- if [ "$(check_buildenv distcc)" = "y" -a "$(check_option distcc)" != "n" ]; then
- [ -d /usr/lib/distcc/bin ] && export PATH="/usr/lib/distcc/bin:$PATH"
+ if [[ "$(check_buildenv distcc)" = "y" && "$(check_option distcc)" != "n" ]]; then
+ [[ -d /usr/lib/distcc/bin ]] && export PATH="/usr/lib/distcc/bin:$PATH"
export DISTCC_HOSTS
- elif [ "$(check_option distcc)" = "n" ]; then
+ elif [[ "$(check_option distcc)" = "n" ]]; then
# if it is not wanted, clear the makeflags too
MAKEFLAGS=""
fi

# use ccache if it is requested (check buildenv and PKGBUILD opts)
- if [ "$(check_buildenv ccache)" = "y" -a "$(check_option ccache)" != "n" ]; then
- [ -d /usr/lib/ccache/bin ] && export PATH="/usr/lib/ccache/bin:$PATH"
+ if [[ "$(check_buildenv ccache)" = "y" && "$(check_option ccache)" != "n" ]]; then
+ [[ -d /usr/lib/ccache/bin ]] && export PATH="/usr/lib/ccache/bin:$PATH"
fi

run_function "build"
}

run_package() {
- if [ -z "$1" ]; then
+ if [[ -z $1 ]]; then
pkgfunc="package"
else
pkgfunc="package_$1"
@@ -782,16 +782,16 @@ tidy_install() {
cd "$pkgdir"
msg "$(gettext "Tidying install...")"

- if [ "$(check_option docs)" = "n" -a -n "${DOC_DIRS[*]}" ]; then
+ if [[ "$(check_option docs)" = "n" && -n "${DOC_DIRS[*]}" ]]; then
msg2 "$(gettext "Removing doc files...")"
rm -rf ${DOC_DIRS[@]}
fi

- if [ "$(check_option purge)" = "y" -a -n "${PURGE_TARGETS[*]}" ]; then
+ if [[ "$(check_option purge)" = "y" && -n "${PURGE_TARGETS[*]}" ]]; then
msg2 "$(gettext "Purging other files...")"
local pt
for pt in "${PURGE_TARGETS[@]}"; do
- if [ "${pt}" = "${pt///}" ]; then
+ if [[ "${pt}" = "${pt///}" ]]; then
find . -type f -name "${pt}" -exec rm -f -- '{}' ;
else
rm -f ${pt}
@@ -799,16 +799,16 @@ tidy_install() {
done
fi

- if [ "$(check_option zipman)" = "y" -a -n "${MAN_DIRS[*]}" ]; then
+ if [[ "$(check_option zipman)" = "y" && -n "${MAN_DIRS[*]}" ]]; then
msg2 "$(gettext "Compressing man and info pages...")"
local manpage ext file link hardlinks hl
find ${MAN_DIRS[@]} -type f 2>/dev/null |
while read manpage ; do
# check file still exists (potentially compressed with hard link)
- if [ -f ${manpage} ]; then
+ if [[ -f ${manpage} ]]; then
ext="${manpage##*.}"
file="${manpage##*/}"
- if [ "$ext" != "gz" -a "$ext" != "bz2" ]; then
+ if [[ $ext != gz && $ext != bz2 ]]; then
# update symlinks to this manpage
find ${MAN_DIRS[@]} -lname "$file" 2>/dev/null |
while read link ; do
@@ -834,7 +834,7 @@ tidy_install() {
done
fi

- if [ "$(check_option strip)" = "y" -a -n "${STRIP_DIRS[*]}" ]; then
+ if [[ $(check_option strip) = y && -n ${STRIP_DIRS[*]} ]]; then
msg2 "$(gettext "Stripping debugging symbols from binaries and libraries...")"
local binary
find ${STRIP_DIRS[@]} -type f 2>/dev/null | while read binary ; do
@@ -851,12 +851,12 @@ tidy_install() {
done
fi

- if [ "$(check_option libtool)" = "n" ]; then
+ if [[ "$(check_option libtool)" = "n" ]]; then
msg2 "$(gettext "Removing libtool .la files...")"
find . ! -type d -name "*.la" -exec rm -f -- '{}' ;
fi

- if [ "$(check_option emptydirs)" = "n" ]; then
+ if [[ "$(check_option emptydirs)" = "n" ]]; then
msg2 "$(gettext "Removing empty directories...")"
find . -depth -type d -empty -delete
fi
@@ -864,7 +864,7 @@ tidy_install() {

write_pkginfo() {
local builddate=$(date -u "+%s")
- if [ -n "$PACKAGER" ]; then
+ if [[ -n $PACKAGER ]]; then
local packager="$PACKAGER"
else
local packager="Unknown Packager"
@@ -874,12 +874,12 @@ write_pkginfo() {

msg2 "$(gettext "Generating .PKGINFO file...")"
echo "# Generated by makepkg $myver" >.PKGINFO
- if [ "$INFAKEROOT" -eq 1 ]; then
+ if (( INFAKEROOT )); then
echo "# using $(fakeroot -v)" >>.PKGINFO
fi
echo "# $(LC_ALL=C date -u)" >>.PKGINFO
echo "pkgname = $1" >>.PKGINFO
- [ "$SPLITPKG" -eq 1 ] && echo "pkgbase = $pkgbase" >>.PKGINFO
+ (( SPLITPKG )) && echo pkgbase = $pkgbase >>.PKGINFO
echo "pkgver = $pkgver-$pkgrel" >>.PKGINFO
echo "pkgdesc = $pkgdesc" >>.PKGINFO
echo "url = $url" >>.PKGINFO
@@ -887,7 +887,7 @@ write_pkginfo() {
echo "packager = $packager" >>.PKGINFO
echo "size = $size" >>.PKGINFO
echo "arch = $PKGARCH" >>.PKGINFO
- if [ "$(check_option force)" = "y" ]; then
+ if [[ "$(check_option force)" = "y" ]]; then
echo "force = true" >> .PKGINFO
fi

@@ -918,8 +918,8 @@ write_pkginfo() {
done
for it in "${packaging_options[@]}"; do
local ret="$(check_option $it)"
- if [ "$ret" != "?" ]; then
- if [ "$ret" = "y" ]; then
+ if [[ $ret != "?" ]]; then
+ if [[ $ret = y ]]; then
echo "makepkgopt = $it" >>.PKGINFO
else
echo "makepkgopt = !$it" >>.PKGINFO
@@ -929,7 +929,7 @@ write_pkginfo() {

# TODO maybe remove this at some point
# warn if license array is not present or empty
- if [ -z "$license" ]; then
+ if [[ -z $license ]]; then
warning "$(gettext "Please add a license line to your %s!")" "$BUILDSCRIPT"
plain "$(gettext "Example for GPL'ed software: license=('GPL').")"
fi
@@ -941,14 +941,14 @@ check_package() {
# check existence of backup files
local file
for file in "${backup[@]}"; do
- if [ ! -f "$file" ]; then
+ if [[ ! -f $file ]]; then
warning "$(gettext "Invalid backup entry : %s")" "$file"
fi
done
}

create_package() {
- if [ ! -d "$pkgdir" ]; then
+ if [[ ! -d $pkgdir ]]; then
error "$(gettext "Missing pkg/ directory.")"
plain "$(gettext "Aborting...")"
exit 1 # $E_MISSING_PKGDIR
@@ -959,13 +959,13 @@ create_package() {
cd "$pkgdir"
msg "$(gettext "Creating package...")"

- if [ -z "$1" ]; then
+ if [[ -z $1 ]]; then
nameofpkg="$pkgname"
else
nameofpkg="$1"
fi

- if [ "$arch" = "any" ]; then
+ if [[ $arch = "any" ]]; then
PKGARCH="any"
else
PKGARCH=$CARCH
@@ -976,14 +976,14 @@ create_package() {
local comp_files=".PKGINFO"

# check for an install script
- if [ -n "$install" ]; then
+ if [[ -n $install ]]; then
msg2 "$(gettext "Adding install script...")"
cp "$startdir/$install" .INSTALL
comp_files="$comp_files .INSTALL"
fi

# do we have a changelog?
- if [ -n "$changelog" ]; then
+ if [[ -n $changelog ]]; then
msg2 "$(gettext "Adding package changelog...")"
cp "$startdir/$changelog" .CHANGELOG
comp_files="$comp_files .CHANGELOG"
@@ -1009,7 +1009,7 @@ create_package() {
bsdtar -cf - $comp_files * > "$pkg_file" || ret=$?
shopt -u nullglob

- if [ $ret -eq 0 ]; then
+ if (( ! ret )); then
case "$PKGEXT" in
*tar.gz) gzip -f -n "$pkg_file" ;;
*tar.bz2) bzip2 -f "$pkg_file" ;;
@@ -1018,7 +1018,7 @@ create_package() {
ret=$?
fi

- if [ $ret -ne 0 ]; then
+ if (( ret )); then
error "$(gettext "Failed to create package file.")"
exit 1 # TODO: error code
fi
@@ -1042,8 +1042,8 @@ create_srcpackage() {
msg2 "$(gettext "Adding %s...")" "$BUILDSCRIPT"
ln -s "${BUILDFILE}" "${srclinks}/${pkgbase}/${BUILDSCRIPT}"

- if [ -n "$install" ]; then
- if [ -f $install ]; then
+ if [[ -n $install ]]; then
+ if [[ -f $install ]]; then
msg2 "$(gettext "Adding install script...")"
ln -s "${startdir}/$install" "${srclinks}/${pkgbase}/"
else
@@ -1051,8 +1051,8 @@ create_srcpackage() {
fi
fi

- if [ -n "$changelog" ]; then
- if [ -f "$changelog" ]; then
+ if [[ -n $changelog ]]; then
+ if [[ -f $changelog ]]; then
msg2 "$(gettext "Adding package changelog...")"
ln -s "${startdir}/$changelog" "${srclinks}/${pkgbase}/"
else
@@ -1063,10 +1063,10 @@ create_srcpackage() {
local netfile
for netfile in "${source[@]}"; do
local file=$(get_filename "$netfile")
- if [ -f "$netfile" ]; then
+ if [[ -f $netfile ]]; then
msg2 "$(gettext "Adding %s...")" "$netfile"
ln -s "${startdir}/$netfile" "${srclinks}/${pkgbase}"
- elif [ "$SOURCEONLY" -eq 2 -a -f "$SRCDEST/$file" ]; then
+ elif (( SOURCEONLY == 2 )) && [[ -f "$SRCDEST/$file" ]]; then
msg2 "$(gettext "Adding %s...")" "$file"
ln -s "$SRCDEST/$file" "${srclinks}/${pkgbase}/"
fi
--
1.6.5.2
 
Old 11-11-2009, 10:14 PM
Isaac Good
 
Default Changing [ to [[ and ((

>From 6787be2ea0eacc919b5769c5ab7ef8add1fe35e2 Mon Sep 17 00:00:00 2001
From: Isaac Good <pacman@isaac.otherinbox.com>
Date: Wed, 11 Nov 2009 17:54:42 -0500
Subject: [PATCH 2/2] Changing [ to [[ and ((

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 traps

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

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 8a80d6c..5535eb5 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 [[ -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-12-2009, 06:16 PM
Cedric Staniewski
 
Default Changing [ to [[ and ((

Isaac Good wrote:
>> >From f40b051c1c649889a13f35965fa8f8decd505b47 Mon Sep 17 00:00:00 2001
> From: Isaac Good <pacman@isaac.otherinbox.com>
> Date: Wed, 11 Nov 2009 16:47:43 -0500
> Subject: [PATCH 1/2] Changing [ to [[ and ((
>
> First 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 traps
>
> Signed-off-by: Isaac Good <pacman@isaac.otherinbox.com>
> ---

I hope your patch do not get lost in this thread.

> @@ -345,26 +345,26 @@ handle_deps() {
> local R_DEPS_SATISFIED=0
> local R_DEPS_MISSING=1
>
> - [ $# -eq 0 ] && return $R_DEPS_SATISFIED
> + (( $# == 0 )) && return $R_DEPS_SATISFIED
>

Is there a reason why you do not use (( ! $# )) here?

> @@ -450,12 +450,12 @@ download_sources() {
> for netfile in "${source[@]}"; do
> local file=$(get_filename "$netfile")
> local url=$(get_url "$netfile")
> - if [ -f "$startdir/$file" ]; then
> + if [[ -f "$startdir/$file" ]]; then
> msg2 "$(gettext "Found %s in build dir")" "$file"
> rm -f "$srcdir/$file"
> ln -s "$startdir/$file" "$srcdir/"
> continue
> - elif [ -f "$SRCDEST/$file" ]; then
> + elif [[ -f "$SRCDEST/$file" ]]; then
> msg2 "$(gettext "Using cached copy of %s")" "$file"
> rm -f "$srcdir/$file"
> ln -s "$SRCDEST/$file" "$srcdir/"

We could remove the quotes here, too.

> @@ -512,7 +512,7 @@ generate_checksums() {
>
> local i=0;
> local indent='
> - while [ $i -lt $((${#integ}+6)) ]; do
> + while [[ $i -lt $((${#integ}+6)) ]]; do
> indent="$indent "
> i=$(($i+1))
> done

What about "while (( $i < $((${#integ}+6)) )); do"?

> @@ -521,8 +521,8 @@ generate_checksums() {
> for netfile in "${source[@]}"; do
> local file="$(get_filename "$netfile")"
>
> - if [ ! -f "$file" ] ; then
> - if [ ! -f "$SRCDEST/$file" ] ; then
> + if [[ ! -f $file ]] ; then
> + if [[ ! -f "$SRCDEST/$file" ]] ; then
> error "$(gettext "Unable to find source file %s to generate checksum.")" "$file"
> plain "$(gettext "Aborting...")"
> exit 1

Same as above. Quotes are not necessary.

> @@ -533,10 +533,10 @@ generate_checksums() {
>
> local sum="$(openssl dgst -${integ} "$file")"
> sum=${sum##* }
> - [ $ct -gt 0 ] && echo -n "$indent"
> + (( ct )) && echo -n $indent
> echo -n "'$sum'"

I do not think we want to remove the quotes here.

$ indent=" "
$ echo -n $indent; echo asdf
asdf
$ echo -n "$indent"; echo asdf
asdf
$


> @@ -566,8 +566,8 @@ check_checksums() {
> file="$(get_filename "$file")"
> echo -n " $file ... " >&2
>
> - if [ ! -f "$file" ] ; then
> - if [ ! -f "$SRCDEST/$file" ] ; then
> + if [[ ! -f $file ]] ; then
> + if [[ ! -f "$SRCDEST/$file" ]] ; then
> echo "$(gettext "NOT FOUND")" >&2
> errors=1
> found=0
> @@ -622,8 +622,8 @@ extract_sources() {
> continue
> fi
>
> - if [ ! -f "$file" ] ; then
> - if [ ! -f "$SRCDEST/$file" ] ; then
> + if [[ ! -f $file ]] ; then
> + if [[ ! -f "$SRCDEST/$file" ]] ; then
> error "$(gettext "Unable to find source file %s for extraction.")" "$file"
> plain "$(gettext "Aborting...")"
> exit 1

Quotes are not necessary.

> @@ -662,31 +662,31 @@ extract_sources() {
> ...
> fi
> done
>
> - if [ $EUID -eq 0 ]; then
> + if (( EUID == 0 )); then
> # change perms of all source files to root user & root group
> chown -R 0:0 "$srcdir"
> fi
> }
>
> ...

(( ! EUID )) ?

> @@ -713,12 +713,12 @@ run_function() {
> ...
> local i=1
> while true; do
> - if [ -f "$BUILDLOG.$i" ]; then
> + if [[ -f "$BUILDLOG.$i" ]]; then
> i=$(($i +1))
> else
> break

Quotes again? There are several other places where quotes or the dollar
signs (in e.g. (( $found )) ) are not needed. Maybe you want to remove
them, maybe not.

Cedric
 
Old 11-12-2009, 06:47 PM
Isaac Good
 
Default Changing [ to [[ and ((

On Thu, Nov 12, 2009 at 07:16:41PM +0000, Cedric Staniewski wrote:
> I hope your patch do not get lost in this thread.

Erm. Yeah, I hope so too. How does it get threaded?

>
> > @@ -345,26 +345,26 @@ handle_deps() {
> > local R_DEPS_SATISFIED=0
> > local R_DEPS_MISSING=1
> >
> > - [ $# -eq 0 ] && return $R_DEPS_SATISFIED
> > + (( $# == 0 )) && return $R_DEPS_SATISFIED
> >
>
> Is there a reason why you do not use (( ! $# )) here?

Some variables are used as a boolean flag in which case testing if ((VAR)) and if (( ! VAR )) reads well. The $# (and EUID) are used as integer values so it struck me as more understandable or readable in this form.

> > @@ -450,12 +450,12 @@ download_sources() {
> > for netfile in "${source[@]}"; do
> > local file=$(get_filename "$netfile")
> > local url=$(get_url "$netfile")
> > - if [ -f "$startdir/$file" ]; then
> > + if [[ -f "$startdir/$file" ]]; then
> > msg2 "$(gettext "Found %s in build dir")" "$file"
> > rm -f "$srcdir/$file"
> > ln -s "$startdir/$file" "$srcdir/"
> > continue
> > - elif [ -f "$SRCDEST/$file" ]; then
> > + elif [[ -f "$SRCDEST/$file" ]]; then
> > msg2 "$(gettext "Using cached copy of %s")" "$file"
> > rm -f "$srcdir/$file"
> > ln -s "$SRCDEST/$file" "$srcdir/"
>
> We could remove the quotes here, too.

I was lax with some of the quotes when doing concatenation and parameter expansion...

> > @@ -512,7 +512,7 @@ generate_checksums() {
> >
> > local i=0;
> > local indent='
> > - while [ $i -lt $((${#integ}+6)) ]; do
> > + while [[ $i -lt $((${#integ}+6)) ]]; do
> > indent="$indent "
> > i=$(($i+1))
> > done
>
> What about "while (( $i < $((${#integ}+6)) )); do"?

I was planning a separate patch switching to a for loop.
for (( i = 0; i < ${#integ} + 6; i++ ))

> > @@ -521,8 +521,8 @@ generate_checksums() {
> > for netfile in "${source[@]}"; do
> > local file="$(get_filename "$netfile")"
> >
> > - if [ ! -f "$file" ] ; then
> > - if [ ! -f "$SRCDEST/$file" ] ; then
> > + if [[ ! -f $file ]] ; then
> > + if [[ ! -f "$SRCDEST/$file" ]] ; then
> > error "$(gettext "Unable to find source file %s to generate checksum.")" "$file"
> > plain "$(gettext "Aborting...")"
> > exit 1
>
> Same as above. Quotes are not necessary.
>
> > @@ -533,10 +533,10 @@ generate_checksums() {
> >
> > local sum="$(openssl dgst -${integ} "$file")"
> > sum=${sum##* }
> > - [ $ct -gt 0 ] && echo -n "$indent"
> > + (( ct )) && echo -n $indent
> > echo -n "'$sum'"
>
> I do not think we want to remove the quotes here.
>
> $ indent=" "
> $ echo -n $indent; echo asdf
> asdf
> $ echo -n "$indent"; echo asdf
> asdf
> $

That'd be a careless use of s/"// in a macro on my behalf. Thanks for catching.

> > @@ -566,8 +566,8 @@ check_checksums() {
> > file="$(get_filename "$file")"
> > echo -n " $file ... " >&2
> >
> > - if [ ! -f "$file" ] ; then
> > - if [ ! -f "$SRCDEST/$file" ] ; then
> > + if [[ ! -f $file ]] ; then
> > + if [[ ! -f "$SRCDEST/$file" ]] ; then
> > echo "$(gettext "NOT FOUND")" >&2
> > errors=1
> > found=0
> > @@ -622,8 +622,8 @@ extract_sources() {
> > continue
> > fi
> >
> > - if [ ! -f "$file" ] ; then
> > - if [ ! -f "$SRCDEST/$file" ] ; then
> > + if [[ ! -f $file ]] ; then
> > + if [[ ! -f "$SRCDEST/$file" ]] ; then
> > error "$(gettext "Unable to find source file %s for extraction.")" "$file"
> > plain "$(gettext "Aborting...")"
> > exit 1
>
> Quotes are not necessary.
>
> > @@ -662,31 +662,31 @@ extract_sources() {
> > ...
> > fi
> > done
> >
> > - if [ $EUID -eq 0 ]; then
> > + if (( EUID == 0 )); then
> > # change perms of all source files to root user & root group
> > chown -R 0:0 "$srcdir"
> > fi
> > }
> >
> > ...
>
> (( ! EUID )) ?

As above

>
> > @@ -713,12 +713,12 @@ run_function() {
> > ...
> > local i=1
> > while true; do
> > - if [ -f "$BUILDLOG.$i" ]; then
> > + if [[ -f "$BUILDLOG.$i" ]]; then
> > i=$(($i +1))
> > else
> > break
>
> Quotes again? There are several other places where quotes or the dollar
> signs (in e.g. (( $found )) ) are not needed. Maybe you want to remove
> them, maybe not.
>
> Cedric
>
>

Should I implement these changes and resend this patch?
/me goes looking for git help

Thanks for the feedback!
- Isaac
 
Old 11-12-2009, 09:02 PM
Isaac Good
 
Default Changing [ to [[ and ((

On Thu, Nov 12, 2009 at 07:16:41PM +0000, Cedric Staniewski wrote:
> > @@ -450,12 +450,12 @@ download_sources() {
> > for netfile in "${source[@]}"; do
> > local file=$(get_filename "$netfile")
> > local url=$(get_url "$netfile")
> > - if [ -f "$startdir/$file" ]; then
> > + if [[ -f "$startdir/$file" ]]; then
> > msg2 "$(gettext "Found %s in build dir")" "$file"
> > rm -f "$srcdir/$file"
> > ln -s "$startdir/$file" "$srcdir/"
> > continue
> > - elif [ -f "$SRCDEST/$file" ]; then
> > + elif [[ -f "$SRCDEST/$file" ]]; then
> > msg2 "$(gettext "Using cached copy of %s")" "$file"
> > rm -f "$srcdir/$file"
> > ln -s "$SRCDEST/$file" "$srcdir/"

What about something like this?
> if [[ "$(check_option makeflags)" = "n" ]]; then

None of the quotes are needed. I'm inclined to replace it with:
> if [[ $(check_option makeflags) = "n" ]]; then

While the quotes around n are not needed, they highlight that n is a string which appeals to me since it looks like a string as found in other languages. Or would you say to drop all the quotes.

Maybe some style guidelines are needed for the bash language...

- Isaac
 
Old 11-12-2009, 09:37 PM
Cedric Staniewski
 
Default Changing [ to [[ and ((

Isaac Good wrote:
> On Thu, Nov 12, 2009 at 07:16:41PM +0000, Cedric Staniewski wrote:
>> I hope your patch do not get lost in this thread.
>
> Erm. Yeah, I hope so too. How does it get threaded?
>

I guess you hit the reply button instead of writing a new mail to
pacman-dev. At least, there is the In-Reply-To header field in your mail
header.

>>> @@ -345,26 +345,26 @@ handle_deps() {
>>> local R_DEPS_SATISFIED=0
>>> local R_DEPS_MISSING=1
>>>
>>> - [ $# -eq 0 ] && return $R_DEPS_SATISFIED
>>> + (( $# == 0 )) && return $R_DEPS_SATISFIED
>>>
>> Is there a reason why you do not use (( ! $# )) here?
>
> Some variables are used as a boolean flag in which case testing if ((VAR)) and if (( ! VAR )) reads well. The $# (and EUID) are used as integer values so it struck me as more understandable or readable in this form.
>

I am fine with that, but would it not makes sense to use (( $# > 0 ))
instead of just (( $# )) then?

>>> @@ -512,7 +512,7 @@ generate_checksums() {
>>>
>>> local i=0;
>>> local indent='
>>> - while [ $i -lt $((${#integ}+6)) ]; do
>>> + while [[ $i -lt $((${#integ}+6)) ]]; do
>>> indent="$indent "
>>> i=$(($i+1))
>>> done
>> What about "while (( $i < $((${#integ}+6)) )); do"?
>
> I was planning a separate patch switching to a for loop.
> for (( i = 0; i < ${#integ} + 6; i++ ))
>

In this case, I would either get rid of -lt by converting to a for loop
directly or not touch that line at all in this patch.

> Should I implement these changes and resend this patch?
> /me goes looking for git help
>

If you like, but you could also wait for at least Allan's comment. You
can use "git commit --amend" to alter your existing commit in git by the
way.
 
Old 11-12-2009, 10:03 PM
Allan McRae
 
Default Changing [ to [[ and ((

Isaac Good wrote:

On Thu, Nov 12, 2009 at 07:16:41PM +0000, Cedric Staniewski wrote:

@@ -450,12 +450,12 @@ download_sources() {
for netfile in "${source[@]}"; do
local file=$(get_filename "$netfile")
local url=$(get_url "$netfile")
- if [ -f "$startdir/$file" ]; then
+ if [[ -f "$startdir/$file" ]]; then
msg2 "$(gettext "Found %s in build dir")" "$file"
rm -f "$srcdir/$file"
ln -s "$startdir/$file" "$srcdir/"
continue
- elif [ -f "$SRCDEST/$file" ]; then
+ elif [[ -f "$SRCDEST/$file" ]]; then
msg2 "$(gettext "Using cached copy of %s")" "$file"
rm -f "$srcdir/$file"
ln -s "$SRCDEST/$file" "$srcdir/"


What about something like this?

if [[ "$(check_option makeflags)" = "n" ]]; then


None of the quotes are needed. I'm inclined to replace it with:

if [[ $(check_option makeflags) = "n" ]]; then


While the quotes around n are not needed, they highlight that n is a string which appeals to me since it looks like a string as found in other languages. Or would you say to drop all the quotes.



Aren't the quotes around the string on the right required if it does
contain spaces? Anyway, I would prefer all such strings to be quoted so
I am happy with your suggestion.


Allan
 
Old 11-12-2009, 10:07 PM
Allan McRae
 
Default Changing [ to [[ and ((

Cedric Staniewski wrote:

Isaac Good wrote:

>From f40b051c1c649889a13f35965fa8f8decd505b47 Mon Sep 17 00:00:00 2001

From: Isaac Good <pacman@isaac.otherinbox.com>
Date: Wed, 11 Nov 2009 16:47:43 -0500
Subject: [PATCH 1/2] Changing [ to [[ and ((

First 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 traps

Signed-off-by: Isaac Good <pacman@isaac.otherinbox.com>
---


I hope your patch do not get lost in this thread.


I have the patches marked so that they will not be lost.



@@ -450,12 +450,12 @@ download_sources() {
for netfile in "${source[@]}"; do
local file=$(get_filename "$netfile")
local url=$(get_url "$netfile")
- if [ -f "$startdir/$file" ]; then
+ if [[ -f "$startdir/$file" ]]; then
msg2 "$(gettext "Found %s in build dir")" "$file"
rm -f "$srcdir/$file"
ln -s "$startdir/$file" "$srcdir/"
continue
- elif [ -f "$SRCDEST/$file" ]; then
+ elif [[ -f "$SRCDEST/$file" ]]; then
msg2 "$(gettext "Using cached copy of %s")" "$file"
rm -f "$srcdir/$file"
ln -s "$SRCDEST/$file" "$srcdir/"


We could remove the quotes here, too.



Hmmm... can we. I know we can when there are spaces in a single
variable, but for some reason I thought quotes were needed when joining
multiple variables like that. I could be wrong...


Allan
 
Old 11-12-2009, 10:29 PM
Isaac Good
 
Default Changing [ to [[ and ((

On Thu, Nov 12, 2009 at 10:37:31PM +0000, Cedric Staniewski wrote:
> Isaac Good wrote:
> > On Thu, Nov 12, 2009 at 07:16:41PM +0000, Cedric Staniewski wrote:
> >> I hope your patch do not get lost in this thread.
> >
> > Erm. Yeah, I hope so too. How does it get threaded?
> >
>
> I guess you hit the reply button instead of writing a new mail to
> pacman-dev. At least, there is the In-Reply-To header field in your mail
> header.
>
> >>> @@ -345,26 +345,26 @@ handle_deps() {
> >>> local R_DEPS_SATISFIED=0
> >>> local R_DEPS_MISSING=1
> >>>
> >>> - [ $# -eq 0 ] && return $R_DEPS_SATISFIED
> >>> + (( $# == 0 )) && return $R_DEPS_SATISFIED
> >>>
> >> Is there a reason why you do not use (( ! $# )) here?
> >
> > Some variables are used as a boolean flag in which case testing if ((VAR)) and if (( ! VAR )) reads well. The $# (and EUID) are used as integer values so it struck me as more understandable or readable in this form.
> >
>
> I am fine with that, but would it not makes sense to use (( $# > 0 ))
> instead of just (( $# )) then?

I am not sure I understand what you are saying.
In general there are no negative values. With boolean flags either it is set or not set. So you get : if (( FLAG )) and if (( ! FLAG ))
With $# (and EUID) the code is set up to test for zero, not non-zero. (( $# > 0 )) and (( $# )) are the reverse of what the code checks for.
All of these do the same thing:
$ (( $# == 0 )) && return $R_DEPS_SATISFIED
$ (( $# > 0 )) || return $R_DEPS_SATISFIED
$ (( ! $# )) && return $R_DEPS_SATISFIED
$ (( $# )) || return $R_DEPS_SATISFIED

I left the test as && because there was no compelling reason to change it. That aside, I am in favor of either of the first two for $# as opposed to the latter two for boolean flags.

> >>> @@ -512,7 +512,7 @@ generate_checksums() {
> >>>
> >>> local i=0;
> >>> local indent='
> >>> - while [ $i -lt $((${#integ}+6)) ]; do
> >>> + while [[ $i -lt $((${#integ}+6)) ]]; do
> >>> indent="$indent "
> >>> i=$(($i+1))
> >>> done
> >> What about "while (( $i < $((${#integ}+6)) )); do"?
> >
> > I was planning a separate patch switching to a for loop.
> > for (( i = 0; i < ${#integ} + 6; i++ ))
> >
>
> In this case, I would either get rid of -lt by converting to a for loop
> directly or not touch that line at all in this patch.

amended/reversed

> > Should I implement these changes and resend this patch?
> > /me goes looking for git help
> >
>
> If you like, but you could also wait for at least Allan's comment. You
> can use "git commit --amend" to alter your existing commit in git by the
> way.

Thanks. I'm learning a lot of git today

- Isaac
 
Old 11-12-2009, 10:52 PM
Cedric Staniewski
 
Default Changing [ to [[ and ((

Allan McRae wrote:
> Cedric Staniewski wrote:
>> We could remove the quotes here, too.
>>
>
> Hmmm... can we. I know we can when there are spaces in a single
> variable, but for some reason I thought quotes were needed when joining
> multiple variables like that. I could be wrong...
>

[[ behaves quite different compared to [ in this aspect, but as far as I
know, you do not need quotes to join variables as long as there are no
spaces between the variables . There are several exceptions though,
like cd for example, which require quotes even for single variables when
they contain spaces. I think this has something to do with the type of
the command. Builtins/external commands (usually) need quotes whereas
everything else should work without.
In my opinion, it is often not obvious whether they are required or not
which is why I tended to use more quotes than actually were needed. I am
fairly familiar with quoting by now and can use both "quoting styles",
but I think it would probably be a good idea to decide for one. Using
just as much quotes as required would be a little bit shorter, but using
quotes `where possible` may be a little bit more foolproof.

$ a=" a d"
$ b=" e"
$ c=$a:$b
$ echo "$c"
a d: e
$
$
$ filename="a d e"
$ suffix=".f"
$ [ -e ${filename}${suffix} ] && echo 1
bash: [: too many arguments
$ [[ -e ${filename}${suffix} ]] && echo 1
$ touch "${filename}${suffix}"
$ [[ -e ${filename}${suffix} ]] && echo 1
1
$ [[ -e a d e.f ]] && echo 1
bash: syntax error in conditional expression
bash: syntax error near `d'
$ [[ -e "a d e.f" ]] && echo 1
1
 

Thread Tools




All times are GMT. The time now is 12:17 PM.

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