home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / genindex < prev    next >
AmigaDOS Script File  |  1995-08-17  |  4KB  |  95 lines

  1. .KEY arg_outfile,arg_pilist,arg_id,arg_desc
  2. .BRA [
  3. .KET ]
  4.  
  5. ; Using arg_pilist, arg_id, and arg_desc, append amigaguide output to
  6. ; the file arg_outfile, which may contain output from previous executions
  7. ; of this script. The arg_pilist file contains a list of fully qualified
  8. ; product info file names.
  9. ;
  10. ; The output consists of a node named INDEX-arg_id, with the description
  11. ; arg_desc, containing lines of the form
  12. ;
  13. ;    @{"name" ...} @{"version" ...} @{"short description" ...}
  14. ;
  15. ; The name field invokes an amigaguide system call that runs a script that
  16. ; extracts the ".run" field from the associated product info file and tries
  17. ; to run it.
  18. ;
  19. ; The version field will eventually cause a search for other versions to be
  20. ; run.  For now it invokes a script that does nothing but throw up a requester
  21. ; and return.
  22. ;
  23. ; The short description field includes a link to a node in the CONTENTS.guide
  24. ; file that contains the longer description of the associated product.
  25. ;
  26. ; After the INDEX-arg_id node comes a series of nodes that are referenced
  27. ; by entries in the INDEX-arg_id node, one node for extended contents
  28. ; information for each INDEX-arg_id entry.
  29. ;
  30. ; IMPORTANT!  At the time the entries in INDEX.guide are accessed, the
  31. ; current directory may be somewhere other than the current directory at
  32. ; the time this script is envoked, so arg_pilist should contain fully
  33. ; qualified pathnames (which are inserted as part of the INDEX.guide entry).
  34.  
  35. ; HACK!  FIXME!  ARG!
  36. set volname "FreshFish-Vol10"
  37.  
  38. set tmp_tmp1 "t:GenINDEX-0-[$$].tmp"
  39. set tmp_tmp2 "t:GenINDEX-1-[$$].tmp"
  40. set tmp_sorted "t:GenINDEX-2-[$$].tmp"
  41. set tmp_accum "t:GenINDEX-3-[$$].tmp"
  42.  
  43. ; Generate a temporary file containing the same product info filenames as
  44. ; arg_pilist, but sorted by the name of the product.
  45.  
  46. $volname:Tools/c/pitool <[arg_pilist] -b -F "@%N@%i\n" -f - - >$tmp_tmp1
  47. $volname:Tools/c/sort -f <$tmp_tmp1 >$tmp_tmp2
  48. $volname:Tools/c/sed "s:@.*@::" <$tmp_tmp2 >$tmp_sorted
  49.  
  50. ; Output the header of the INDEX entries node.
  51. ; Echo insists on writing its output to the screen when run inside
  52. ; a script with execute, even if that script's output has been redirected
  53. ; to a file.  Furthermore, it can't even append to a file, so we have to
  54. ; interleave echos and joins to get what we need.  How did this 1960's
  55. ; scripting environment end up in a 1990's computer?
  56.  
  57. echo "@node INDEX-[arg_id] @dq@[arg_desc]@dq@" to $tmp_accum
  58. echo "To run a program, view a picture, etc, click on the name field below." to $tmp_tmp2
  59. copy $tmp_accum $tmp_tmp1
  60. join $tmp_tmp1 $tmp_tmp2 as $tmp_accum
  61. echo "For more information about a particular program, click on the" to $tmp_tmp2
  62. copy $tmp_accum $tmp_tmp1
  63. join $tmp_tmp1 $tmp_tmp2 as $tmp_accum
  64. echo "description field." to $tmp_tmp2
  65. copy $tmp_accum $tmp_tmp1
  66. join $tmp_tmp1 $tmp_tmp2 as $tmp_accum
  67. echo "" >>$tmp_accum to $tmp_tmp2
  68. copy $tmp_accum $tmp_tmp1
  69. join $tmp_tmp1 $tmp_tmp2 as $tmp_accum
  70.  
  71. ; Generate the INDEX.guide entries.
  72.  
  73. $volname:Tools/c/pitool <$tmp_sorted -b -F "@{@dq@%-16.16N@dq@ system @dq@run >nil: execute $volname:tools/scripts/RunDotRun %i@dq@}@{@dq@%-40.40S@dq@ link %N-%V}\n" -f - - >>$tmp_accum
  74.  
  75. ; Finish off the INDEX node.
  76.  
  77. echo "@endnode" >>$tmp_tmp2
  78. copy $tmp_accum $tmp_tmp1
  79. join $tmp_tmp1 $tmp_tmp2 as $tmp_accum
  80.  
  81. ; Generate the full contents node for each product.
  82.   
  83. $volname:Tools/c/pitool <$tmp_sorted -b -F "@node %N-%V @dq@%S@dq@\n\n%N    %V    %S\n\n%d\n\nAuthor: %a\nPath: %P\n\n@endnode\n\n" -f - - >>$tmp_accum
  84.  
  85. ; Note that we first generate the entries in a temporary file, and then
  86. ; post process it with sed to replace occurances of @dq@ with double quotes,
  87. ; since we can't seem to escape them in the pitool command line.
  88.  
  89. $volname:Tools/c/sed -f $volname:tools/scripts/addquotes.sed <$tmp_accum >>[arg_outfile]
  90.  
  91. ; Clean up
  92.  
  93. delete $tmp_tmp1 $tmp_tmp2 $tmp_sorted $tmp_accum quiet force >nil:
  94. unset volname
  95.