On 02/19/2018 04:53 PM, Luke Shumaker wrote:
> Isn't [[ -d ]] there redundant?  If globbing gave us $dir/file, of
> course $dir is a directory!

True. I think I still had that in from some point where I hadn't enabled
nullglob yet.

> Meanwhile, this dropped the `-type f` check, though I'm not sure how
> important that was.
> Shouldn't this be written as:
>       mapfile -t -d '' staging_repos < <(
>               for f in "${STAGING}"/**/*${PKGEXTS}; do
>                       if [[ -f $f && ! -h $f ]]; then
>                               printf '%s\0' "${f/*}"
>                       fi
>               done | sort -uz
>       )
> The original `find` command rejected symlinks; I don't know if that's
> an important property; but that's what the `&& ! -h $f` bit is for.

It is not important, the find command only checked if the file itself
was a symlink but if there is another package file in the same directory
then we still add those staging repos.

Meanwhile, we check later on for `die "Package %s is a symbolic link"`.
So I guess technically it would make more sense to stage the package and
then utilize the explicit error message rather than silently dropping
the package altogether (but only sometimes) simply because we didn't
think to use -xtype.

At this stage in the game, we're just trying to assemble a list of the
packages that the uploader is asserting they want to db-update. We
perform all actual validation later on.

Eli Schwartz
Bug Wrangler and Trusted User

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to