<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">On Wednesday 13 May 2009 08:03:22 am Vamsi Krishna Davuluri wrote:<br>
&gt; Thanks. I have taken into account your suggestions and made another script.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Thank you all for helping out! Here are a few other comments: <br>
&gt;<br>
&gt; #!/bin/bash -e<br>
&gt; # CUPS filter to process ODT files using abiword<br>
&gt;<br>
&gt;<br>
&gt; # $6 happens to be the path to file passed as argument<br>
&gt; fn="$6"<br>
&gt;<br>
&gt; #in case its not defined<br>
&gt; TMPDIR="/tmp"<br>
See Jona's comments<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>&gt; # we are creating a dummy folder, which can take different file types using<br>
&gt; mkdir, change to ="/tmp/cups-odftops"<br>
&gt; sandbox="${TMPDIR-/tmp}/cups-odftops.$$$$"<br>
&gt; (umask 077 &amp;&amp; mkdir "$sandbox") || exit 1<br>
&gt;<br>
&gt; #our two dummy files<br>
&gt; fn1="$sandbox/temp123.odt"<br>
&gt; cp "$fn" "$fn1"<br>
Do you need to cp? Can't you symlink? Copying potentially large files is a problem. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>&gt; # Call abiword quietly, securely<br>
&gt; abiword --to="ps" "$fn1"<br>
&gt; fn2="`echo "$fn1" | sed -e 's/odt/ps/' `"<br>
fn2=`echo "$fn1" | sed 's/\.odt$/\.ps/'`<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>&gt; #check if our version doesn't require an intermediate conversion, if it<br>
&gt; does, do it, else break;<br>
&gt;<br>
&gt; if [ -n "`grep -q "%!PS-Adobe-3.0" &lt; "$fn2" `" ];then<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>grep -q is always silent, and [ -n ] tests for string length nonzero, so this will always fail. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>I guess you're trying to see if the conversion failed (does not contain "%!PS-Adobe-3.0" ), so you should need: <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>if [ -z `grep "%!PS-Adobe-3.0" &lt; "$fn2"` ]; then<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>&gt; abiword --to="doc" "$fn1"<br>
&gt; abiword --to="ps" "`echo "$fn1" | sed -e 's/odt/doc/' `"<br>
&gt; fi<br>
Again,  watch out for that sed.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>-- <br>
  AndrĂ©s</p></body></html>