Re: [arch-projects] [dbscripts] [GIT] Official repo DB scripts branch master updated. 20131102-59-g36b71d3

2018-02-15 Thread Luke Shumaker
On Thu, 15 Feb 2018 15:09:57 -0500,
Eli Schwartz wrote:
> 
> On 02/15/2018 02:04 PM, Luke Shumaker wrote:
> >> -  [ -f "${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}"${PKGEXT} 
> >> ] && return 1
> >> -  [ -f 
> >> "${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}"${PKGEXT}.sig ] && 
> >> return 1
> >> +  [[ -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT} 
> >> ]] && return 1
> >> +  [[ -f 
> >> ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT}.sig ]] && 
> >> return 1
> > 
> > You don't want to do that here.  In dbscripts, PKGEXT is a glob
> > pattern--it needs to be "unquoted"; and `[[ ... ]]`'s magic-quoting
> > breaks that.  The closing-quote coming before ${PKGEXT} was quite
> > intentional.
> 
> Seems like an easy thing to fix, we always use .pkg.tar.xz and using a
> glob there seems quite ugly.
> (What happens if it magically matches two files? The POSIX [ construct
> explodes and burns your house down.)

Disregard the bit about my version not being broken in my last
message---my spam filter had eaten this message.  You are correct;
both versions are broken.

-- 
Happy hacking,
~ Luke Shumaker


Re: [arch-projects] [dbscripts] [GIT] Official repo DB scripts branch master updated. 20131102-59-g36b71d3

2018-02-15 Thread Eli Schwartz via arch-projects
On 02/15/2018 02:04 PM, Luke Shumaker wrote:
>> -[ -f "${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}"${PKGEXT} 
>> ] && return 1
>> -[ -f 
>> "${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}"${PKGEXT}.sig ] && 
>> return 1
>> +[[ -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT} 
>> ]] && return 1
>> +[[ -f 
>> ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT}.sig ]] && 
>> return 1
> 
> You don't want to do that here.  In dbscripts, PKGEXT is a glob
> pattern--it needs to be "unquoted"; and `[[ ... ]]`'s magic-quoting
> breaks that.  The closing-quote coming before ${PKGEXT} was quite
> intentional.

Seems like an easy thing to fix, we always use .pkg.tar.xz and using a
glob there seems quite ugly.
(What happens if it magically matches two files? The POSIX [ construct
explodes and burns your house down.)

But what you're saying is that check_pkgrepos should never fail even if
the package already exists, since it doesn't exist with a literal ? char
-- this should be caught by test/cases/db-update.bats in
@test "update same any package to different repositories fails"

And that test does not fail... looks like it needs to test the case
where the second package is renamed...

-- 
Eli Schwartz
Bug Wrangler and Trusted User



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [dbscripts] [GIT] Official repo DB scripts branch master updated. 20131102-59-g36b71d3

2018-02-15 Thread Luke Shumaker
On Thu, 15 Feb 2018 10:48:11 -0500,
Eli Schwartz via arch-projects wrote:
> commit b61a7148eaf546a31597b74d9dd8948e4a39dea1
> Author: Eli Schwartz 
> Date:   Mon Feb 12 20:50:57 2018 -0500
> 
> Use more bashisms
> 
> Fix numerous instances of POSIX `[ ... ]`, including reliance on ugly
> deprecated constructs like POSIX `-a`. Since we require bash regardless,
> it makes sense to take full advantage of it.
> 
> bash `[[ ... ]]` does not require quoting variables as the shell
> natively recognizes them as variables rather than expanded strings.
> 
> Use shell arithmetic rather than test, when checking numerical values.
> 
> diff --git a/db-functions b/db-functions
> index d66955b..c0af03c 100644
> --- a/db-functions
> +++ b/db-functions
> @@ -381,10 +380,10 @@ check_pkgrepos() {
>   local pkgver="$(getpkgver ${pkgfile})" || return 1
>   local pkgarch="$(getpkgarch ${pkgfile})" || return 1
>  
> - [ -f "${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}"${PKGEXT} 
> ] && return 1
> - [ -f 
> "${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}"${PKGEXT}.sig ] && 
> return 1
> + [[ -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT} 
> ]] && return 1
> + [[ -f 
> ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT}.sig ]] && 
> return 1

You don't want to do that here.  In dbscripts, PKGEXT is a glob
pattern--it needs to be "unquoted"; and `[[ ... ]]`'s magic-quoting
breaks that.  The closing-quote coming before ${PKGEXT} was quite
intentional.

-- 
Happy hacking,
~ Luke Shumaker