home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / gencontents.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1995-08-26  |  4KB  |  114 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 "Contents of entire FreshFish CD, sorted by category"
  31.  
  32. Material on FreshFish is classified into categories such as demos, games,
  33. music, pictures, etc.  Click on one of the category names below to access
  34. material in that classification:
  35.  
  36.  
  37. EOF
  38.  
  39. # Generate a list of categories.
  40.  
  41. for i in `cat $tmp2`
  42. do
  43.     desc=`grep "^$i" <Categories | sed "s:^$i[     ]*::"`
  44.     printf "  @{\" %-4s \" link $i-INDEX}  $desc\n" $i
  45. done
  46.  
  47. # Finish off the root node.
  48.  
  49. cat <<EOF
  50.  
  51.  
  52. Click @{"here" system "run >nil: execute FreshFish-Vol10:Tools/scripts/SearchAPI FreshFish-Vol10:All.api"} to search all the product info files on this CD for a simple
  53. string (case independent) or @{"regular expression" link FreshFish-Vol10:README.guide/REGEXP} and access all material
  54. found.  Please be patient since this may take from 10 seconds to 3 minutes
  55. depending upon your hardware configuration.  Future releases will greatly
  56. reduce this time.
  57. @endnode
  58. EOF
  59.  
  60.  
  61. ### Now build a node for each of the subdirectories.
  62.  
  63. for i in `cat $tmp2`
  64. do
  65. cat <<EOF
  66. @node $i-INDEX "Index of subdirectory: $i"
  67.  
  68. To run a program, view a picture, etc click on the name field.
  69. For information about other versions click on the version field.
  70. For additional information click on the description field.
  71. If an entry occurs more than once, it simply means that there is
  72. more than one location on this CD where the material can be found.
  73.  
  74. Click @{"here" system "run >nil: execute FreshFish-Vol10:Tools/scripts/SearchAPI FreshFish-Vol10:All.api"} to search all the product info files on this CD for a simple
  75. string (case independent) or @{"regular expression" link FreshFish-Vol10:README.guide/REGEXP} and access all material
  76. found.  Please be patient since this may take from 10 seconds to 3 minutes
  77. depending upon your hardware configuration.  Future releases will greatly
  78. reduce this time.
  79.  
  80.  
  81. EOF
  82.  
  83.     # Generate a list of product info files with this particular aminet-dir field.
  84.  
  85.     pitool <$1 -b -F "@%A@%i\n" -f - - | grep "@$i/.*@" | sed "s:@.*@::" >$tmp3
  86.  
  87.     # Sort the list by the name field.
  88.  
  89.     pitool <$tmp3 -b -F "@%N@%i\n" -f - - | sort -f | sed -e "s:@.*@::" >$tmp4
  90.  
  91.     # Generate the amigaguide entry for each product in this name sorted list.
  92.  
  93.     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 - -
  94.  
  95.     # Finish off the node for this subcategory.
  96.  
  97.     echo "@endnode"
  98. done
  99.  
  100. ### Build a dummy Find-Other-Versions node for now.
  101.  
  102. echo "@node Find-Other-Versions"
  103. echo "The feature to locate information about other versions is currently unimplemented."
  104. echo "@endnode"
  105.  
  106. ### Now build the full contents node for each of the original product
  107. ### info files.
  108.  
  109. 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" -
  110.  
  111. ### All done, clean up.
  112.  
  113. rm -f $tmp1 $tmp2 $tmp3 $tmp4
  114.