procmail
[Top] [All Lists]

It should have worked?

2002-08-12 01:09:42
The tricky bit:
         Saving a mimedecoded file with spaces in the name.
         If the attached file has a singleword name, there is no error. 
         Neither single nor two levels of quotes fix it.

Specific Error:
   procmail: Executing " mimedecode > ${DELIVERY_DIR}/$FILE"
   /bin/bash: ${DELIVERY_DIR}/$FILE: ambiguous redirect

Trace:
   procmail: Assigning "LOG=erik(_at_)dd(_dot_)nec(_dot_)com(_dot_)au"
   erik(_at_)dd(_dot_)nec(_dot_)com(_dot_)auprocmail: Assigning 
"PROJ_DIR=/vp/projects"
   procmail: Match on "^Received:.*"                           
   procmail: Assigning "MATCH="
   procmail: Matched "n2ip_nms"                                
   procmail: Match on "^Subject:[   ]*Project[^:]*:[   ]*\/[^   ]+"
   procmail: Assigning "PROJECT=n2ip_nms"
   procmail: Executing " test -d $PROJ_DIR/$PROJECT/admin"
   procmail: Match on " test -d $PROJ_DIR/$PROJECT/admin"
   procmail: Assigning "DELIVERY_DIR=/vp/projects/n2ip_nms/admin"
   procmail: Assigning "MATCH="
   procmail: Matched ""Old vege gardenPush up yards.doc""
   procmail: Match on "^Content-Disposition: attachment; filename=\/.*"
   procmail: Executing "echo "@$MATCH@" | tr [\(_at_)] [\']"
   procmail: Assigning "FILE='"Old vege gardenPush up yards.doc"'"
   procmail: Assigning "LOG=/vp/projects/n2ip_nms/admin/'"Old vege gardenPush up
   yards.doc"'"
   /vp/projects/n2ip_nms/admin/'"Old vege gardenPush up yards.doc"'procmail:
   Couldn't determine implicit lockfile from " mimedecode >
   ${DELIVERY_DIR}/$FILE"
   procmail: Locking ".lock"
   procmail: Executing " mimedecode > ${DELIVERY_DIR}/$FILE"
   /bin/bash: ${DELIVERY_DIR}/$FILE: ambiguous redirect
   procmail: Error while writing to " mimedecode > ${DELIVERY_DIR}/$FILE"
   procmail: Non-zero exitcode (1) from " mimedecode > ${DELIVERY_DIR}/$FILE"
   procmail: Assigning "LASTFOLDER= mimedecode > ${DELIVERY_DIR}/$FILE"
   procmail: Unlocking ".lock"
   procmail: Executing " echo $FILE | mail -s "Document Lodgement Failed"
   $SENDER"
   procmail: Match on " echo $FILE | mail -s "Document Lodgement Failed"
   $SENDER"


Offending Rule:
---------------
PROJ_DIR=/vp/projects
                        # WARNING: Any mail admitted here is written to
                        # $PROJECT's admin directory (or Approvals)
   :0                               # N.B. "Received" with IP may be 3rd last!
   * ^Received:.*
   * ^Subject:[   ]*Project[^:]*:[   ]*\/[^   ]+
   {
      PROJECT=$MATCH                                        # Project dir
      :0                                                    # Exists already?
      * ? test -d $PROJ_DIR/$PROJECT/admin
      {
         DELIVERY_DIR=$PROJ_DIR/$PROJECT/admin              # Yes
      }
      :0 E
      {
         DELIVERY_DIR=$PROJ_DIR/Approvals                   # Fallback dir
      }

      :0                                                    # Delivery
      * B ?? ^Content-Disposition: attachment; filename=\/.* 
      {                                                     # Accept ' ' in name
#        FILE=`echo "$MATCH" | tr [\"] [\']`                # Leave it quoted
         FILE=`echo "@$MATCH@" | tr [\(_at_)] [\']`              # "' xxx '"
         LOG=${DELIVERY_DIR}/$FILE

         :0c:                                               # Deliver document
         | mimedecode > ${DELIVERY_DIR}/$FILE

         :0a:                                               # Legitimation
         * ? echo ${DELIVERY_DIR}/$FILE | mail -s "Document Lodged" $SENDER
         $PROJ_DIR/Approvals/mail_record

         :0E:                                               # Failure
         * ? echo $FILE | mail -s "Document Lodgement Failed" $SENDER
         /dev/null
      }
   }

   As mentioned, one level of hard quotes didn't cut it either:

procmail: Assigning "LOG=/vp/projects/n2ip_nms/admin/'Old vege gardenPush up
yards.doc'"
/vp/projects/n2ip_nms/admin/'Old vege gardenPush up yards.doc'procmail: Couldn't
determine implicit lockfile from " mimedecode > ${DELIVERY_DIR}/$FILE"
procmail: Locking ".lock"
procmail: Executing " mimedecode > ${DELIVERY_DIR}/$FILE"
/bin/bash: ${DELIVERY_DIR}/$FILE: ambiguous redirect
   
   Attempting to simulate the suspected effect with bash, on the same host, does
not recreate the error message:

$ echo $SHELL
/bin/bash
$ echo fred > /tmp/erik sam
$ more /tmp/erik
fred sam

   Does anyone recognise the fly in the ointment?

Regards,
Erik


_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail

<Prev in Thread] Current Thread [Next in Thread>