File:  [LON-CAPA] / doc / build / generate_web_pages.pl
Revision 1.60: download - view: text, annotated - select for diffs
Mon Jun 12 18:51:13 2017 UTC (6 years, 11 months ago) by raeburn
Branches: MAIN
CVS tags: version_2_11_3_uiuc, version_2_11_3_msu, version_2_11_3, version_2_11_2_uiuc, version_2_11_2_msu, version_2_11_2_educog, version_2_11_2, HEAD
- Ubuntu LTS 16; Fedora 22, 23, 24, 25 support available with LON-CAPA 2.11.2
- Links to some old versons of distros removed: Fedora 13, 14, 15; SuSE 11.4,
  RHEL 4, SLES 9, Ubuntu 8.04

    1: #!/usr/bin/perl -w
    2: 
    3: =pod
    4: 
    5: =NAME
    6: 
    7: generate_web_pages.pl - generate the web pages for the install site
    8: 
    9: =SYNOPSIS
   10: 
   11: Yeah, it does that.
   12: 
   13: Basically, there's a few comments in shell.hemp that we replace with
   14:     what we really want in the files. Pretty simple.
   15: 
   16: The point of this is to look like the main site.
   17: 
   18: =cut
   19: 
   20: # This is the list of pages to generate: Change this to
   21: # add/subtract/etc. pages. Index is done seperately.
   22: # Title, source
   23: 
   24: my @longlifecycle = (
   25:               ['CentOS Linux 7 Install','centos7_install'],
   26:               ['CentOS Linux 6 Install','centos6_install'],
   27:               ['CentOS Linux 5 Install','centos5_install'],
   28:               ['Scientific Linux 7 Install','scientific7_install'],
   29:               ['Scientific Linux 6 Install','scientific6_install'],
   30:               ['Scientific Linux 5 Install','scientific5_install'],
   31:               ['Red Hat Enterprise Linux 7 Install','RHEL7_install'],
   32:               ['Red Hat Enterprise Linux 6 Install','RHEL6_install'],
   33:               ['Red Hat Enterprise Linux 5 Install','RHEL5_install'],
   34:               ['SuSE Linux Enterprise Server 12 Install', 'sles12_install'],
   35:               ['SuSE Linux Enterprise Server 11 Install', 'sles11_install'],
   36:               ['SuSE Linux Enterprise Server 10 Install', 'sles10_install'],
   37:               ['Ubuntu 16.04 LTS Server', 'ubuntu16LTS_install'],
   38:               ['Ubuntu 14.04 LTS Server', 'ubuntu14LTS_install'],
   39:               ['Ubuntu 12.04 LTS Server', 'ubuntu12LTS_install'],
   40:               ['Ubuntu 10.04 LTS Server', 'ubuntu10LTS_install'],
   41: 	      );
   42: 
   43: my @shortlifecycle = (
   44:               ['Fedora 25 Install', 'F25_install'],
   45:               ['Fedora 24 Install', 'F24_install'],
   46:               ['Fedora 23 Install', 'F23_install'],
   47:               ['Fedora 22 Install', 'F22_install'],
   48:               ['Fedora 21 Install', 'F21_install'],
   49:               ['Fedora 20 Install', 'F20_install'],
   50:               ['Fedora 19 Install', 'F19_install'],
   51:               ['Fedora 18 Install', 'F18_install'],
   52:               ['Fedora 17 Install', 'F17_install'],
   53:               ['Fedora 16 Install', 'F16_install'],
   54:               ['SuSE Linux 13.2 Install', 'suse13.2_install'],
   55:               ['SuSE Linux 13.1 Install', 'suse13.1_install'],
   56:               ['SuSE Linux 12.3 Install', 'suse12.3_install'],
   57:               ['SuSE Linux 12.2 Install', 'suse12.2_install'],
   58:               ['SuSE Linux 12.1 Install', 'suse12.1_install'],
   59:               );
   60:  
   61: my @ancillary = (
   62:               ['Upgrading from Previous LON-CAPA install', 'upgrade'],
   63:               ['LON-CAPA License (Gnu Public License)', 'license']
   64:               );
   65: 
   66: my @other_pages = ( 
   67: 		    ['Developer Information', 'dev'],
   68: 		    ['Configuration Information', 'config'],
   69: 		    );
   70: 
   71: open SHELL, '<', "shell.html";
   72: my $shell = join '', <SHELL>;
   73: $shell =~ s/\r/\n/g;
   74: 
   75: # Call with: The title, breadcrumb, and content
   76: sub replaceText {
   77:     my ($title, $links, $breadcrumb, $content) = @_;
   78: 
   79:     my $page = $shell;
   80:     $page =~ s/\<!-- *title *--\>/$title/g;
   81:     $page =~ s/\<!-- *links *--\>/$links/g;
   82:     $page =~ s/\<!-- *breadcrumb *--\>/$breadcrumb/g;
   83:     $page =~ s/\<!-- *content *--\>/$content/g;
   84: 
   85:     return $page;
   86: }
   87: 
   88: # Do the index page
   89: 
   90: open INDEX, '>', "index.html";
   91: my $content = <<PRELUDE; 
   92: 
   93: <p>LON-CAPA is based upon a lot of Open Source modules, so it's
   94: important to have the right environment on your computer. This is most
   95: easily done by installing on a dedicated machine while installing the
   96: operating system.</p>
   97: 
   98: <p>The configuring of LON-CAPA is part of the install process of the
   99: software. However, in case something needs to be altered, or isn't
  100: working, here is some <a href="config.html">information on configuring
  101: LON-CAPA</a>.</p>
  102: 
  103: <hr />
  104: <h3>Supported Linux Distros</h3>
  105: PRELUDE
  106: 
  107: $content .= '<p>LON-CAPA is supported on a variety of Linux distributions.</p>'."\n".
  108:              '<p>In the list below these are divided into distros with a long
  109: life cycle, i.e., those for which a particular version is supported by the distributor for 5 years or more, and those with a short life cycle, i.e., those for which a particular version is supported for up to 18 months.</p>'.     
  110:             '<div style="float: left;">'.
  111:             '<b>Long life cycle</b><br />'.
  112:             '<ul>'."\n";
  113: for (@longlifecycle) {
  114:     $content .= "<li><a href='$_->[1].html'>$_->[0]</a></li>\n";
  115: }
  116: $content .= '</ul></div>'."\n".
  117:             '<div style="float: left;">'.
  118:             '<b>Short life cycle</b><br />'.
  119:             '<ul>'."\n";
  120: for (@shortlifecycle) {
  121:     $content .= "<li><a href='$_->[1].html'>$_->[0]</a></li>\n";
  122: }
  123: $content .= '</ul></div><br clear="all" />'."\n".
  124:             '<b>Additional information</b><ul>'."\n";
  125: for (@ancillary) {
  126:     $content .= "<li><a href='$_->[1].html'>$_->[0]</a></li>\n";
  127: }
  128: $content .= '</ul><br />';
  129: 
  130: 
  131: my $testing_content = '';
  132: if (@testing_pages) {
  133:     $testing_content .= "<hr/><p>Installation on the following systems requires the use of a testing release of LON-CAPA.</p>\n";
  134:     $testing_content .= "<ul>\n";
  135:     for (@testing_pages) {
  136: 	$testing_content .= "<li><a href='$_->[1].html'>$_->[0]</a></li>\n";
  137:     }
  138:     $testing_content .= "</ul>\n";
  139: }
  140: 
  141: 
  142: $content .= <<"POSTLUDE";
  143: <hr />
  144: <a name="download" />
  145: <h3>Downloading LON-CAPA</h3>
  146: 
  147: <p>
  148: <b>Current Production Release is Version LATESTVERSION.
  149: This version was released on LATESTDATE.</b>
  150: </p>
  151: <p>
  152: You can download the <b>most current production version of LON-CAPA</b> at
  153: <a href="http://install.lon-capa.org/versions/loncapa-current.tar.gz">
  154: http://install.lon-capa.org/versions/loncapa-current.tar.gz</a>
  155: (version LATESTVERSION).
  156: </p>
  157: TESTINGRELEASE_START
  158: <p>
  159: <b>Current Testing Release is Version LATESTTESTINGVERSION.
  160: This version was released on LATESTTESTINGDATE.</b>
  161: </p>
  162: <p>
  163: You can download the <b>testing version of the upcoming LON-CAPA</b> at
  164: <a href="http://install.lon-capa.org/versions/loncapa-testing.tar.gz">
  165: http://install.lon-capa.org/versions/loncapa-testing.tar.gz</a>
  166: (version LATESTTESTINGVERSION).
  167: </p>
  168: $testing_content
  169: TESTINGRELEASE_END
  170: 
  171: <hr />
  172: POSTLUDE
  173: 
  174: open(RELEASE, '<', "release.frag");
  175: $content .= join('',<RELEASE>);
  176: close(RELEASE);
  177: 
  178: $content .= "<ul>\n";
  179: my @testing_pages = ( 
  180: 		      );
  181: for (@other_pages) {
  182:     $content .= "<li><a href='$_->[1].html'>$_->[0]</a></li>\n";
  183: }
  184: 
  185: $content .= "</ul>\n";
  186: 
  187: $links='<link rel="alternate" type="application/rss+xml" title="CVS RSS" href="loncapa.rss" />';
  188: 
  189: my $index = replaceText("Install LON-CAPA", $links, '<font color="#006600" face="Arial, Helvetica, sans-serif">Documentation/Download</font>',
  190: 			$content);
  191: 
  192: print INDEX $index;
  193: close INDEX;
  194: 
  195: # Build the pages
  196: for (@longlifecycle,@shortlifecycle,@ancillary,@other_pages,@testing_pages) {
  197:     my ($title, $source) = @$_;
  198: 
  199:     # read in content
  200:     open SOURCE, '<', $source.'.frag';
  201:     $content = join '', <SOURCE>;
  202:     close SOURCE;
  203: 
  204:     $content = replaceText($title, '', '<font face="Arial, Helvetica, sans-serif"><a href="/">Documentation/Download</a> &raquo; '.
  205:                            '</font><font color="#006600" face="Arial, Helvetica, sans-serif">'.$title,
  206: 			   $content);
  207:     open DEST, '>', $source.'.html';
  208:     print DEST $content;
  209:     close DEST;
  210: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>