indexgen.sh 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/bin/bash
  2. #(c) Copyright Barry Kauler 2009, puppylinux.com.
  3. #2009 Lesser GPL licence v2 (http://www.fsf.org/licensing/licenses/lgpl.html)
  4. #generates index.html master help page. called from petget, rc.update,
  5. # /usr/local/petget/installpreview.sh, 3builddistro (in Woof).
  6. #w012 commented-out drop-down for all installed pkgs as too big in Ubuntu-Puppy.
  7. #w016 support/find_homepages (in Woof) used to manually update HOMEPAGEDB variable.
  8. #w019 now have /root/.packages/PKGS_HOMEPAGES
  9. #w464 reintroduce dropdown help for all builtin packages.
  10. #v423 file PKGS_HOMEPAGES is now a db of all known pkgs, not just in puppy.
  11. #120225 copy from raw doc files.
  12. export LANG=C
  13. . /etc/DISTRO_SPECS #has DISTRO_BINARY_COMPAT, DISTRO_COMPAT_VERSION, DISTRO_PUPPYDATE
  14. . /root/.packages/DISTRO_PKGS_SPECS
  15. WKGDIR="`pwd`"
  16. #120225 this is done in Woof by rootfs-skeleton/pinstall.sh, but do need to do it
  17. #here to support language translations (see /usr/share/sss/doc_strings)...
  18. if [ -f /usr/share/doc/index.html.top-raw ];then #see Woof rootfs-skeleton/pinstall.sh, also /usr/share/sss/doc_strings
  19. cp -f /usr/share/doc/index.html.top-raw /usr/share/doc/index.html.top
  20. cp -f /usr/share/doc/index.html.bottom-raw /usr/share/doc/index.html.bottom
  21. cp -f /usr/share/doc/home-raw.htm /usr/share/doc/home.htm
  22. cutDISTRONAME="`echo -n "$DISTRO_NAME" | cut -f 1 -d ' '`"
  23. cPATTERN="s/cutDISTRONAME/${cutDISTRONAME}/g"
  24. RIGHTVER="$DISTRO_VERSION"
  25. dPATTERN="s/PUPPYDATE/${DISTRO_PUPPYDATE}/g"
  26. PATTERN1="s/RIGHTVER/${RIGHTVER}/g"
  27. PATTERN2="s/DISTRO_VERSION/${DISTRO_VERSION}/g"
  28. nPATTERN="s/DISTRO_NAME/${DISTRO_NAME}/g"
  29. sed -i -e "$PATTERN1" -e "$PATTERN2" -e "$nPATTERN" -e "$dPATTERN" -e "$cPATTERN" /usr/share/doc/index.html.top
  30. sed -i -e "$PATTERN1" -e "$PATTERN2" -e "$nPATTERN" -e "$dPATTERN" /usr/share/doc/index.html.bottom
  31. #...note, /usr/sbin/indexgen.sh puts these together as index.html (normally via rc.update and 3builddistro).
  32. sed -i -e "$nPATTERN" /usr/share/doc/home.htm
  33. fi
  34. #search for installed pkgs with descriptions...
  35. #search .desktop files...
  36. PKGINFO1="`ls -1 /usr/share/applications | sed -e 's%^%/usr/share/applications/%' | xargs cat - | grep '^Name=' | cut -f 2 -d '='`"
  37. #...normal format of each entry is 'name description', ex: 'Geany text editor'.
  38. EXCLLISTsd=" 0rootfs_skeleton autologin bootflash burniso2cd cd/dvd check configure desktop format network pupdvdtool wallpaper pbackup pburn pcdripper pdict pdisk pdvdrsab pmetatagger pschedule pstopwatch prename pprocess pmirror pfind pcdripper pmount puppy pupctorrent pupscan pupx pwireless set text "
  39. cp -f /usr/share/doc/index.html.top /tmp/newinfoindex.xml
  40. #dropdown menu for apps in menu...
  41. echo '<p>Applications available in the desktop menu:</p>' >>/tmp/newinfoindex.xml
  42. echo '<center>
  43. <form name="form">
  44. <select name="site" size="1" onchange="javascript:formHandler()">
  45. ' >>/tmp/newinfoindex.xml
  46. echo "$PKGINFO1" |
  47. while read ONEINFO
  48. do
  49. NAMEONLY="`echo "$ONEINFO" | cut -f 1 -d ' ' | tr [A-Z] [a-z]`"
  50. EXPATTERN=" $NAMEONLY "
  51. nEXPATTERN="^$NAMEONLY "
  52. [ "`echo "$EXCLLISTsd" | grep -i "$EXPATTERN"`" != "" ] && continue
  53. HOMESITE="http://en.wikipedia.org/wiki/${NAMEONLY}"
  54. REALHOME="`cat /root/.packages/PKGS_HOMEPAGES | grep -i "$nEXPATTERN" | head -n 1 | cut -f 2 -d ' '`"
  55. [ "$REALHOME" != "" ] && HOMESITE="$REALHOME"
  56. echo "<option value=\"${HOMESITE}\">${ONEINFO}" >> /tmp/newinfoindex.xml
  57. done
  58. echo '</select>
  59. </form>
  60. </center>
  61. ' >> /tmp/newinfoindex.xml
  62. #w464 dropdown list of all builtin pkgs...
  63. echo '<p>Complete list of packages (in Puppy or not):</p>' >>/tmp/newinfoindex.xml
  64. echo '<center>
  65. <form name="form2">
  66. <select name="site2" size="1" onchange="javascript:formHandler2()">
  67. ' >>/tmp/newinfoindex.xml
  68. sed -e 's% %|%' -e 's%$%|%' /root/.packages/PKGS_HOMEPAGES > /tmp/pkgs_homepages_mod
  69. printcols /tmp/pkgs_homepages_mod 2 1 | sed -e 's%^%<option value="%' -e 's%|$%#%' -e 's%|%">%' -e 's%#$%%' >> /tmp/newinfoindex.xml
  70. sync
  71. echo '</select>
  72. </form>
  73. </center>
  74. ' >> /tmp/newinfoindex.xml
  75. #now complete the index.html file...
  76. cat /usr/share/doc/index.html.bottom >> /tmp/newinfoindex.xml
  77. mv -f /tmp/newinfoindex.xml /usr/share/doc/index.html
  78. ###END###