home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / new / gencontents.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1995-08-26  |  4KB  |  116 lines

  1. #! /bin/sh
  2. #
  3. # Note that we have to convert cases of double quotes in the
  4. # amigaguide @{...} output, and also in @node lines, to single
  5. # quotes, since it confuses amigaguide and there doesn't seem to
  6. # be any way to escape them.
  7.  
  8. tmpd=`date +%j%H%M%S`
  9. tmp1="/tmp/sh1-$tmpd"
  10. tmp2="/tmp/sh2-$tmpd"
  11. tmp3="/tmp/sh3-$tmpd"
  12. tmp4="/tmp/sh4-$tmpd"
  13.  
  14. volname=`pwd | sed -e 's%^/%%' -e 's%/.*%%'`
  15.  
  16. # Extract the .aminet-dir fields from each Product-Info file, sort them
  17. # uniq them, and generate a list of categories that covers all the 
  18. # product info files.
  19.  
  20. pitool -b -F "%A\n" -f - - <$1 | sed "s:/.*::" | sort -f | uniq >$tmp2
  21.  
  22. # Build the root node.
  23.  
  24. cat << EOF
  25. @database Contents
  26. @author "Amiga Library Services"
  27. @(c) "Copyright © 1995 Amiga Library Services"
  28. @index MAIN
  29.  
  30. @node MAIN "New material, sorted by category"
  31.  
  32.          R E C E N T    S U B M I S S I O N S
  33.  
  34. Material on FreshFish is classified into categories such as demos, games,
  35. music, pictures, etc.  Click on one of the category names below to access
  36. material in that classification:
  37.  
  38.  
  39. EOF
  40.  
  41. # Generate a list of categories.
  42.  
  43. for i in `cat $tmp2`
  44. do
  45.     desc=`grep "^$i" <Categories | sed "s:^$i[     ]*::"`
  46.     printf "  @{\" %-4s \" link $i-INDEX}  $desc\n" $i
  47. done
  48.  
  49. # Finish off the root node.
  50.  
  51. cat <<EOF
  52.  
  53.  
  54. Click @{"here" system "run >nil: execute $volname:Tools/scripts/SearchAPI $volname:New/New.api"} to search all the product info files in the "new" section of
  55. this CD for a simple string (case independent) or @{"regular expression" link $volname:README.guide/REGEXP} and
  56. access all material found.  Please be patient since this may take from 10
  57. seconds to over a minute, depending upon your hardware configuration.
  58. Future releases will greatly reduce this time.
  59. @endnode
  60. EOF
  61.  
  62.  
  63. ### Now build a node for each of the subdirectories.
  64.  
  65. for i in `cat $tmp2`
  66. do
  67. cat <<EOF
  68. @node $i-INDEX "Index of subdirectory: $i"
  69.  
  70. To run a program, view a picture, etc click on the name field.
  71. For information about other versions click on the version field.
  72. For additional information click on the description field.
  73. If an entry occurs more than once, it simply means that there is
  74. more than one location on this CD where the material can be found.
  75.  
  76. Click @{"here" system "run >nil: execute $volname:Tools/scripts/SearchAPI $volname:New/New.api"} to search all the product info files in the "new" section of
  77. this CD for a simple string (case independent) or @{"regular expression" link $volname:README.guide/REGEXP} and
  78. access all material found.  Please be patient since this may take from 10
  79. seconds to over a minute, depending upon your hardware configuration.
  80. Future releases will greatly reduce this time.
  81.  
  82.  
  83. EOF
  84.  
  85.     # Generate a list of product info files with this particular aminet-dir field.
  86.  
  87.     pitool <$1 -b -F "@%A@%i\n" -f - - | grep "@$i/.*@" | sed "s:@.*@::" >$tmp3
  88.  
  89.     # Sort the list by the name field.
  90.  
  91.     pitool <$tmp3 -b -F "@%N@%i\n" -f - - | sort -f | sed -e "s:@.*@::" >$tmp4
  92.  
  93.     # Generate the amigaguide entry for each product in this name sorted list.
  94.  
  95.     pitool <$tmp4 -b -F "@{\" %-18.18N \" system \"run >nil: execute $volname:tools/scripts/RunDotExecute %i\"}@{\" %8.8V \" link Find-Other-Versions}@{\" %-40.40S \" link %N-%V}\n" -f - -
  96.  
  97.     # Finish off the node for this subcategory.
  98.  
  99.     echo "@endnode"
  100. done
  101.  
  102. ### Build a dummy Find-Other-Versions node for now.
  103.  
  104. echo "@node Find-Other-Versions"
  105. echo "The feature to locate information about other versions is currently unimplemented."
  106. echo "@endnode"
  107.  
  108. ### Now build the full contents node for each of the original product
  109. ### info files.
  110.  
  111. pitool <$1 -f - -b -F "@node %N-%V \"%S\"\n\n%N    %V    %S\n\n%d\n\nAuthor: %a\nPath: %P\n\n@endnode\n\n" -
  112.  
  113. ### All done, clean up.
  114.  
  115. rm -f $tmp1 $tmp2 $tmp3 $tmp4
  116.