Re: [arch-projects] [dbscripts] [GIT] Official repo DB scripts branch master updated. 20131102-59-g36b71d3
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
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
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