[cups] Sending mail from a CentOS7 virtual machine to Fuji Xerox ApeosPort-IV C4475 problem revisted
マスターズ・イアン
ian at ncsa.jp
Mon Oct 15 17:36:07 PDT 2018
Gernot
That was very kind of you to spend your valuable time helping me.
Yesterday I was off work sick, today I'm at a seminar, but I will try what you suggested as soon as I can, possibly even tomorrow.
Again, many thanks. I really appreciate it.
ian
On 2018/10/12 22:54, Gernot Hassenpflug wrote:
> On Fri, Oct 12, 2018 at 5:38 PM Gernot Hassenpflug <aikishugyo at gmail.com <mailto:aikishugyo at gmail.com>> wrote:
>
> On Fri, Oct 12, 2018 at 4:50 PM マスターズ・イアン <ian at ncsa.jp <mailto:ian at ncsa.jp>> wrote:
>
> > How are you at reading shell scripts?
>
> Not very good at all really.
>
>
> Hi Ian,
> Ah, that is a problem for this sort of thing, as you now know.
>
> or in English, somnething like:
>
> /usr/lib/cups/filter/fxauth.test: Line 17: Unexpected end of file (EOF) while searching matching '' '
> /usr/lib/cups/filter/fxauth.test: line 24: syntax error: unexpected end of file (EOF)
>
>
> Maybe $INPUT is empty?
> The way to test a script is to ascertain that the expected inputs exist, and print them out with echo for example to check.
> Then you can check the output.
> I don't know if I have time to help on the weekend, but if I do, the first thing I will do is just show you how to do the above.
> Best regards,
> Gernot Hassenpflug
>
>
> Hi Ian,
>
> I had a chance to look at the file, and found a few problems with my documentation, sorry about that.
> (1) the sed expression is missing the final ' before $INPUT.
> (2) each line must be ended with a \, so final expression should be
>
> sed -e '/@PJL COMMENT Version:4.00/ a\
> @PJL SET JOBATTR="@CNAM=P10316-VM"\
> @PJL SET JOBATTR="@DAID="\
> @PJL SET JOBATTR="@JOAU=3496"\
> @PJL SET JOBATTR="@LUNA=3496"' $INPUT
>
> Now the logic.
> 1. the test file is read in as the 6th parameter
> 2. a temporary file is created
> 3. the contents of the test file are put into the temporary file
> 4. the sed expression appends 4 lines after the string "@PJL COMMENT Version:4.00"
>
> I added a couple of debug lines to the file, and commented out the PPD, so in full for testing it is (fxauth.sh, executable):
>
> #!/bin/bash
>
> [ -n "$6" ] && exec <"$6"
> # input is regular file
> cleanup() { EXIT_CODE=$? ; rm -f $INPUT &>/dev/null ; exit $EXIT_CODE ; }
> trap 'cleanup' 0 1 2 3 15
>
> MY_NAME=${0##*/}
> INPUT=$( mktemp /var/spool/cups/tmp/root.XXXXXX ) || exit 1
> cat - >$INPUT
>
> # check parameters
> echo "file: $INPUT"
> echo "file contents:"
> cat $INPUT
>
> # prefilter for all printjobs arriving on linux, since authentication is not optional
>
> #source /etc/cups/ppd/${PRINTER}.fx
> #source /etc/cups/ppd/11F1.fx
>
> sed -e '/@PJL COMMENT Version:4.00/ a\
> @PJL SET JOBATTR="@CNAM=P10316-VM"\
> @PJL SET JOBATTR="@DAID="\
> @PJL SET JOBATTR="@JOAU=3496"\
> @PJL SET JOBATTR="@LUNA=3496"' $INPUT
>
> exit $?
>
> Then I made a test.prn file containing:
>
> This is a test file
> @PJL COMMENT Version:4.00
>
> And then simply ran the script as follows:
>
> hase at hase:~$ ./fxauth.sh 1 2 3 4 5 test.prn
> file: /var/spool/cups/tmp/root.ix5nS8
> file contents:
> This is a test file
> @PJL COMMENT Version:4.00
> This is a test file
> @PJL COMMENT Version:4.00
> @PJL SET JOBATTR="@CNAM=P10316-VM"
> @PJL SET JOBATTR="@DAID="
> @PJL SET JOBATTR="@JOAU=3496"
> @PJL SET JOBATTR="@LUNA=3496"
>
> As you can see the test file neatly has the lines appended.
> So in your printjob you need to check if you have a similar line you can use to append after, else you might need to change the filter, e.g., if the version is different, or if there is just different stuff there.
>
> I will update my documentation on my webpage now also!
>
> Best regards,
> Gernot Hassenpflug
More information about the cups
mailing list