home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / gencontents.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1995-10-21  |  3KB  |  109 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 GoldFish CD, sorted by category"
  31.  
  32. Material on GoldFish 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 GoldFish-Vol3:Tools/scripts/SearchAPI GoldFish-Vol3:All.api"} to search all the product info files on this CD for a simple
  53. string (case independent) or @{"regular expression" link GoldFish-Vol3: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 GoldFish-Vol3:Tools/scripts/SearchAPI GoldFish-Vol3:All.api"} to search all the product info files on this CD for a simple
  75. string (case independent) or @{"regular expression" link GoldFish-Vol3: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: $volname:Tools/c/RunDotExecute %i\"}@{\" %8.8V \" link Find-Other-Versions}@{\" %-40.40S \" system \"run >nil: execute $volname:Tools/scripts/ViewDesc %i\"}\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. ### All done, clean up.
  107.  
  108. rm -f $tmp1 $tmp2 $tmp3 $tmp4
  109.