Hi,
     Sorry for emailing this list, but neither the GNU indexed
homepage nor the actual project page listed any other email address.
     I'm trying to determine whether or not this is an implicit bug or
a feature of BSD bourne shell (in particular FreeBSD's sh):
     When I try and execute `portsnap fetch update' [1], things go
through as the author intended. However, using `bash portsnap fetch
update' I get the following error message:

/usr/sbin/portsnap: portsnap: line 882: syntax error near unexpected
token `newline'
/usr/sbin/portsnap: portsnap: line 882: `       if !'

     The incompatible section of code (at least the one that bash
barfs on -- I say that because there are a few similar sections IIRC)
is:

        if !
                if ! [ -z "${EXTRACTPATH}" ]; then
                        grep "^${EXTRACTPATH}" ${WORKDIR}/INDEX
                elif ! [ -z "${REFUSE}" ]; then
                        grep -vE "${REFUSE}" ${WORKDIR}/INDEX
                else
                        cat ${WORKDIR}/INDEX
                fi | tr '|' ' ' | while read FILE HASH; do
                echo ${PORTSDIR}/${FILE}
                if ! [ -r "${WORKDIR}/files/${HASH}.gz" ]; then
                        echo "files/${HASH}.gz not found -- snapshot corrupt."
                        return 1
                fi
                case ${FILE} in
                */)
                        rm -rf ${PORTSDIR}/${FILE%/}
                        mkdir -p ${PORTSDIR}/${FILE}
                        tar -xzf ${WORKDIR}/files/${HASH}.gz    \
                            -C ${PORTSDIR}/${FILE}
                        ;;
                *)
                        rm -f ${PORTSDIR}/${FILE}
                        tar -xzf ${WORKDIR}/files/${HASH}.gz    \
                            -C ${PORTSDIR} ${FILE}
                        ;;
                esac
        done; then

    I'm pretty sure that the issue is because the code spans multiple
lines and could be (typically) modularized out into a function in
bash.
    So the question is, can anyone verify that either bash or
FreeBSD's sh is correct, and/or verify whether or not there is a
possible incompatibility with the POSIX spec for bourne shells in
either camp?
Thanks,
-Garrett

PS Please CC me as I'm not subscribed to [EMAIL PROTECTED]

[1] A copy of portsnap can be found here:
http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.sbin/portsnap/portsnap/portsnap.sh?rev=1.28;content-type=text%2Fplain


Reply via email to