mkcover.sh.in
上传用户:weiyuanprp
上传日期:2020-05-20
资源大小:1169k
文件大小:4k
源码类别:

传真(Fax)编程

开发平台:

C/C++

  1. #! @SCRIPT_SH@
  2. # $Id: mkcover.sh.in,v 1.2 2006/12/19 18:07:09 faxguy Exp $
  3. #
  4. # HylaFAX Facsimile Software
  5. #
  6. # Copyright (c) 1994-1996 Sam Leffler
  7. # Copyright (c) 1994-1996 Silicon Graphics, Inc.
  8. # HylaFAX is a trademark of Silicon Graphics
  9. # Permission to use, copy, modify, distribute, and sell this software and 
  10. # its documentation for any purpose is hereby granted without fee, provided
  11. # that (i) the above copyright notices and this permission notice appear in
  12. # all copies of the software and related documentation, and (ii) the names of
  13. # Sam Leffler and Silicon Graphics may not be used in any advertising or
  14. # publicity relating to the software without the specific, prior written
  15. # permission of Sam Leffler and Silicon Graphics.
  16. # THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  17. # EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  18. # WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  19. # IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  20. # ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  21. # OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  22. # WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  23. # LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  24. # OF THIS SOFTWARE.
  25. #
  26. #
  27. # mkcover qfile cover
  28. #
  29. # Generate a PostScript continuation cover page for the specified job.
  30. #
  31. if [ $# != 3 ]; then
  32.     echo "Usage: $0 qfile template cover.ps"
  33.     exit 1
  34. fi
  35. test -f etc/setup.cache || {
  36.     SPOOL=`pwd`
  37.     cat<<EOF
  38. FATAL ERROR: $SPOOL/etc/setup.cache is missing!
  39. The file $SPOOL/etc/setup.cache is not present.  This
  40. probably means the machine has not been setup using the faxsetup(@MANNUM1_8@)
  41. command.  Read the documentation on setting up HylaFAX before you
  42. startup a server system.
  43. EOF
  44.     exit 1
  45. }
  46. . etc/setup.cache
  47. qfile=$1
  48. TEMPLATE=${2:?'No cover sheet template file specified.'}
  49. cover=$3
  50. test -f $TEMPLATE || { echo "No cover sheet template $TEMPLATE."; exit 1; }
  51. DATE=`date +"%a %b %d %Y, %H:%M %Z"`
  52. ($CAT <<'EOF'
  53. %!PS-Adobe-3.0
  54. %%Creator: mkcover
  55. %%Title: HylaFAX Continuation Cover Sheet
  56. %%Pages: 1 +1
  57. %%EndComments
  58. %%BeginProlog
  59. /$coverdict 100 dict def $coverdict begin
  60. EOF
  61. $AWK -F: '
  62. function emitDef(d, v)
  63. {
  64.     gsub("[()]", "\&", v);
  65.     printf "/%s (%s) defn", d, v;
  66. }
  67. BEGIN { emitDef("todays-date", DATE);
  68.   jobid = FILENAME;
  69.   sub("^[^0-9]*", "", jobid);
  70. }
  71. /^number/ { number = $2; }
  72. /^external/ { number = $2; } # override unprocessed number
  73. /^sender/ { emitDef("from", $2); }
  74. /^mailaddr/ { emitDef("mailaddr", $2); }
  75. /^status/ { comments = "This is the continuation of job#" jobid 
  76.      " which failed previously because:n    " $2;
  77.   if (comments ~ /\$/) {
  78.       sub("\\$", "", comments);
  79.       while (getline) {
  80.   comments = comments $0;
  81.   sub("\\$", "", comments);
  82.   if ($0 !~ /\$/)
  83.       break;
  84.       }
  85.   }
  86.   emitDef("comments", comments);
  87. }
  88. /^npages/ { emitDef("page-count", $2); }
  89. /^ntries/ { emitDef("ntries", $2); }
  90. /^ndials/ { emitDef("ndials", $2); }
  91. /^pagewidth/ { printf "/pageWidth %s defn", $2; }
  92. /^pagelength/ { printf "/pageLength %s defn", $2; }
  93. /^receiver/ { emitDef("to", $2); }
  94. /^location/ { emitDef("to-location", $2); }
  95. /^company/ { emitDef("to-company", $2); }
  96. END { emitDef("to-fax-number", number); }
  97. ' DATE="$DATE" $qfile || {
  98.     echo "Problem processing queue file $qfile."
  99.     exit 1
  100. }
  101. $CAT <<'EOF'
  102. end
  103. %%EndProlog
  104. %%Page: "1" 1
  105. $coverdict begin
  106. EOF
  107. case $TEMPLATE in
  108. *.Z) zcat $TEMPLATE;;
  109. *.gz) zcat $TEMPLATE;;
  110. *.p) pcat $TEMPLATE;;
  111. *) $CAT $TEMPLATE;;
  112. esac
  113. $CAT <<'EOF'
  114. end
  115. %%Trailer
  116. %%EOF
  117. EOF
  118. ) > $cover