<!-- updatequery.piml -->
<!-- Scott Harrison -->
<!-- $Id: updatequery.piml,v 1.4 2002/05/12 22:31:41 harris41 Exp $ -->
<!--
This file is part of the LearningOnline Network with CAPA (LON-CAPA).
LON-CAPA is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
LON-CAPA is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with LON-CAPA; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
/home/httpd/html/adm/gpl.txt
http://www.lon-capa.org/
-->
<piml>
<targetroot>/</targetroot>
<files>
<file>
<target dist='default'>/</target>
<perlscript mode='fg'>
$|=1;
print(<<END);
*********************************************
*********************************************
**** ****
**** LON-CAPA SYSTEM INFORMATION REQUEST ****
**** ****
**** Please respond to the choices below ****
**** ****
*********************************************
*********************************************
END
sleep(3);
</perlscript>
</file>
<file>
<target dist='default'>/home/httpd/lonUsers2/</target>
<perlscript mode='fg'>
$|=1;
unless (-e "<TARGET />") {
print(<<END);
WELCOME TO LON-CAPA!
If you have questions, please visit http://install.lon-capa.org
or contact sharrison\@install.lon-capa.org.
===============================================================================
The following 4 values are needed to configure LON-CAPA:
* Machine Role
* Machine ID Name
* LON-CAPA Domain Name, and
* System Administration E-mail Address.
END
open(OUT,'>/tmp/loncapa_updatequery.out');
close(OUT);
# query for Machine Role
print(<<END);
**** Machine Role ****
Library server (recommended if first-time installation of LON-CAPA):
Servers that are repositories of authoritative educational resources.
These servers also provide the construction space by which instructors
assemble their classroom online material.
Access server:
Servers that load-balance high-traffic delivery of educational resources
over the world-wide web.
1) Will this be a library server? (recommended if this is your first install)
2) Or, will this be an access server?
END
my $flag=0;
my $r='';
my $lonRole;
while (!$flag) {
print "ENTER A CHOICE OF 1 or 2:\n";
my $choice=<>;
chomp($choice);
if ($choice==1) {
open(OUT,'>>/tmp/loncapa_updatequery.out');
print(OUT 'lonRole'."\t".'library'."\n");
close(OUT);
$lonRole='library';
$r='l';
$flag=1;
}
elsif ($choice==2) {
open(OUT,'>>/tmp/loncapa_updatequery.out');
print(OUT 'lonRole'."\t".'access'."\n");
close(OUT);
$lonRole='access';
$r='a';
$flag=2;
}
else {
}
}
# need to recommend a machine ID name (ipdomain.l.somenumber)
my $hostname=`hostname`; chomp($hostname);
my $ipdomain='';
if ($hostname=~/([^\.]*)\.([^\.]*)$/) {
$ipdomain=$1;
}
my $lonHostID;
if ($ipdomain) {
$lonHostID=$ipdomain.$r.int(1+rand(9)); # should be probably detect against
# the hosts.tab
}
print(<<END);
**** Machine ID Name ****
[this does NOT need to correspond to internet address names;
this name MUST be unique to the whole LON-CAPA network;
we recommend that you use a name based off of your institution;
good examples: "msul1" or "bionetl1";
bad examples: "loncapabox" or "studentsinside"]
END
# get machine name
# accept if valid, if not valid, tell user and repeat
$flag=0;
while (!$flag) {
if ($ipdomain) {
print(<<END);
ENTER LONCAPA MACHINE ID [$lonHostID]:
END
}
else {
print(<<END);
ENTER LONCAPA MACHINE ID:
END
}
my $choice=<>;
chomp($choice);
if ($ipdomain and $choice=~/^\s*$/) {
$choice=$ipdomain;
open(OUT,'>>/tmp/loncapa_updatequery.out');
print(OUT 'lonHostID'."\t".$choice."\n");
close(OUT);
$flag=1;
}
elsif ($choice!~/\_/ and $choice=~/^\w+$/) {
open(OUT,'>>/tmp/loncapa_updatequery.out');
print(OUT 'lonHostID'."\t".$choice."\n");
close(OUT);
$r='l';
$flag=1;
}
else {
print "Invalid input (only alphanumeric characters supported).\n";
}
}
print(<<END);
**** Domain ****
[this does NOT need to correspond to internet address domains,
examples might be "msu" or "bionet" or "vermontcc"]
END
# get domain name
# accept if valid, if not valid, tell user and repeat
$flag=0;
while (!$flag) {
if ($ipdomain) {
print(<<END);
ENTER LONCAPA DOMAIN [$ipdomain]:
END
}
else {
print(<<END);
ENTER LONCAPA DOMAIN:
END
}
my $choice=<>;
chomp($choice);
if ($ipdomain and $choice=~/^\s*$/) {
$choice=$ipdomain;
open(OUT,'>>/tmp/loncapa_updatequery.out');
print(OUT 'lonDefDomain'."\t".$choice."\n");
close(OUT);
$flag=1;
}
elsif ($choice!~/\_/ and $choice=~/^\w+$/) {
open(OUT,'>>/tmp/loncapa_updatequery.out');
print(OUT 'lonDefDomain'."\t".$choice."\n");
close(OUT);
$r='l';
$flag=1;
}
else {
print "Invalid input (only alphanumeric characters supported).\n";
}
}
# get e-mail address
# accept if valid, if not valid, tell user and repeat
$flag=0;
my $lonAdmEmail;
while (!$flag) {
print(<<END);
**** System Administrator's E-mail ****
E-mail address of the person who will manage this machine
[should be in the form somebody\@somewhere]
ENTER E-MAIL ADDRESS:
END
my $choice=<>;
chomp($choice);
if ($choice=~/\@/) {
open(OUT,'>>/tmp/loncapa_updatequery.out');
print(OUT 'lonAdmEmail'."\t".$choice."\n");
close(OUT);
my $lonAdmEmail=$choice;
$flag=1;
}
else {
print "Invalid input (this needs to look like an e-mail address!).\n";
}
}
# update loncapa.conf
}
</perlscript>
</file>
<file>
<target dist='default'>/home/httpd/lonUsers2</target>
<perlscript mode='fg'>
# read values from loncapa.conf
print(<<END);
===============================================================================
This is now the current configuration of your machine.
1) Machine Name: $perlsetvar{'lonHostID'}
2) Domain Name: $perlsetvar{'lonDefDomain'}
3) System Administrator's E-mail Address: $perlsetvar{'lonAdmEmail'}
4) Role: $perlsetvar{'lonRole'}
5) Cache Expiration Time: $perlsetvar{'lonExpire'}
6) Server Load: $perlsetvar{'lonLoadLim'}
7) Everything is correct up above
ENTER A CHOICE OF 1-6 TO CHANGE, otherwise ENTER 7:
END
# implement editing logic below, interactively
# update loncapa.conf until 7 is entered
</perlscript>
</file>
<file>
<target dist='default'>loncom/hosts.tab</target>
<perlscript mode='fg'>
unless (-l "<TARGET />") {
print(<<END);
===============================================================================
What hosts.tab would you like to have installed?
(hosts.tab is a listing of all other internet machines
that a server system considers to be valid server systems
on the LON-CAPA network)
1) PRODUCTION - you want to deliver courses today or sometime very soon
on this machine
2) DEVELOPMENT - you want to play with or explore LON-CAPA
3) Do not install hosts.tab right now
ENTER 1, 2, or 3:
END
# Option number 26 will install rawhide_hosts.tab, but
# the typical user does not want to be part of an intensive
# machine test cluster.
# get input
# if valid then process, otherwise loop
}
</perlscript>
</file>
</files>
</piml>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>