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