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 02-04-2011, 11:26 PM
Allan McRae
 
Default makepkg: more bash-3.2 compatibility

Adding the "|| true" to the subshell prevents bash-3.2 setting off the
error_trap but requires changing the if statement.

Signed-off-by: Allan McRae <allan@archlinux.org>
---
scripts/makepkg.sh.in | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 13415fb..001178a 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -507,8 +507,8 @@ download_sources() {

local netfile
for netfile in "${source[@]}"; do
- local file
- if file=$(get_filepath "$netfile"); then
+ local file=$(get_filepath "$netfile" || true)
+ if [[ -n "$file" ]]; then
msg2 "$(gettext "Found %s")" "${file##*/}"
ln -sf "$file" "$srcdir/"
continue
--
1.7.4
 
Old 02-05-2011, 12:02 AM
Dave Reisner
 
Default makepkg: more bash-3.2 compatibility

On Sat, Feb 05, 2011 at 10:26:20AM +1000, Allan McRae wrote:
> Adding the "|| true" to the subshell prevents bash-3.2 setting off the
> error_trap but requires changing the if statement.
>
> Signed-off-by: Allan McRae <allan@archlinux.org>
> ---
> scripts/makepkg.sh.in | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 13415fb..001178a 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -507,8 +507,8 @@ download_sources() {
>
> local netfile
> for netfile in "${source[@]}"; do
> - local file
> - if file=$(get_filepath "$netfile"); then
> + local file=$(get_filepath "$netfile" || true)
> + if [[ -n "$file" ]]; then
> msg2 "$(gettext "Found %s")" "${file##*/}"
> ln -sf "$file" "$srcdir/"
> continue
> --
> 1.7.4
>
>

I don't agree with this. The local keyword will actually mask the return
value of the command substitution and you will always return without
error. It's therefore sufficient to do:

local file=$(get_filepath "$netfile")
if [[ -n $file ]]; then
...

This also applies to any variable defined via the 'declare' builtin.

dave
 

Thread Tools




All times are GMT. The time now is 12:36 AM.

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