Annotation of doc/loncapafiles/updatequery.piml, revision 1.5
1.2 harris41 1: <!-- updatequery.piml -->
1.1 harris41 2: <!-- Scott Harrison -->
3:
1.5 ! harris41 4: <!-- $Id: updatequery.piml,v 1.4 2002/05/12 22:31:41 harris41 Exp $ -->
1.1 harris41 5:
6: <!--
7:
8: This file is part of the LearningOnline Network with CAPA (LON-CAPA).
9:
10: LON-CAPA is free software; you can redistribute it and/or modify
11: it under the terms of the GNU General Public License as published by
12: the Free Software Foundation; either version 2 of the License, or
13: (at your option) any later version.
14:
15: LON-CAPA is distributed in the hope that it will be useful,
16: but WITHOUT ANY WARRANTY; without even the implied warranty of
17: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18: GNU General Public License for more details.
19:
20: You should have received a copy of the GNU General Public License
21: along with LON-CAPA; if not, write to the Free Software
22: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23:
24: /home/httpd/html/adm/gpl.txt
25:
26: http://www.lon-capa.org/
27:
28: -->
29:
30: <piml>
31: <targetroot>/</targetroot>
32: <files>
33: <file>
1.4 harris41 34: <target dist='default'>/</target>
1.1 harris41 35: <perlscript mode='fg'>
1.4 harris41 36: $|=1;
1.1 harris41 37: print(<<END);
38:
39:
40: *********************************************
41: *********************************************
42: **** ****
43: **** LON-CAPA SYSTEM INFORMATION REQUEST ****
44: **** ****
45: **** Please respond to the choices below ****
46: **** ****
47: *********************************************
48: *********************************************
49:
50: END
1.4 harris41 51: sleep(3);
1.1 harris41 52: </perlscript>
53: </file>
54: <file>
1.4 harris41 55: <target dist='default'>/home/httpd/lonUsers2/</target>
1.1 harris41 56: <perlscript mode='fg'>
1.4 harris41 57: $|=1;
1.1 harris41 58: unless (-e "<TARGET />") {
59: print(<<END);
60: WELCOME TO LON-CAPA!
61:
62: If you have questions, please visit http://install.lon-capa.org
1.5 ! harris41 63: or contact sharrison\@mail.lon-capa.org.
1.1 harris41 64:
65: ===============================================================================
1.4 harris41 66: The following 4 values are needed to configure LON-CAPA:
67: * Machine Role
1.1 harris41 68: * Machine ID Name
69: * LON-CAPA Domain Name, and
70: * System Administration E-mail Address.
71: END
1.3 harris41 72:
1.4 harris41 73: open(OUT,'>/tmp/loncapa_updatequery.out');
74: close(OUT);
75:
1.3 harris41 76: # query for Machine Role
77: print(<<END);
78: **** Machine Role ****
79: Library server (recommended if first-time installation of LON-CAPA):
80: Servers that are repositories of authoritative educational resources.
81: These servers also provide the construction space by which instructors
82: assemble their classroom online material.
83: Access server:
84: Servers that load-balance high-traffic delivery of educational resources
85: over the world-wide web.
1.4 harris41 86: 1) Will this be a library server? (recommended if this is your first install)
1.3 harris41 87: 2) Or, will this be an access server?
88: END
1.4 harris41 89: my $flag=0;
90: my $r='';
91: my $lonRole;
92: while (!$flag) {
93: print "ENTER A CHOICE OF 1 or 2:\n";
94: my $choice=<>;
95: chomp($choice);
96: if ($choice==1) {
97: open(OUT,'>>/tmp/loncapa_updatequery.out');
98: print(OUT 'lonRole'."\t".'library'."\n");
99: close(OUT);
100: $lonRole='library';
101: $r='l';
102: $flag=1;
103: }
104: elsif ($choice==2) {
105: open(OUT,'>>/tmp/loncapa_updatequery.out');
106: print(OUT 'lonRole'."\t".'access'."\n");
107: close(OUT);
108: $lonRole='access';
109: $r='a';
110: $flag=2;
111: }
112: else {
113:
114: }
115: }
1.3 harris41 116:
117: # need to recommend a machine ID name (ipdomain.l.somenumber)
1.4 harris41 118: my $hostname=`hostname`; chomp($hostname);
119: my $ipdomain='';
120: if ($hostname=~/([^\.]*)\.([^\.]*)$/) {
121: $ipdomain=$1;
122: }
123: my $lonHostID;
124: if ($ipdomain) {
125: $lonHostID=$ipdomain.$r.int(1+rand(9)); # should be probably detect against
126: # the hosts.tab
127: }
1.1 harris41 128:
129: print(<<END);
130:
131: **** Machine ID Name ****
132: [this does NOT need to correspond to internet address names;
133: this name MUST be unique to the whole LON-CAPA network;
134: we recommend that you use a name based off of your institution;
135: good examples: "msul1" or "bionetl1";
136: bad examples: "loncapabox" or "studentsinside"]
137: END
138: # get machine name
139: # accept if valid, if not valid, tell user and repeat
1.4 harris41 140: $flag=0;
141: while (!$flag) {
142: if ($ipdomain) {
143: print(<<END);
144: ENTER LONCAPA MACHINE ID [$lonHostID]:
145: END
146: }
147: else {
148: print(<<END);
149: ENTER LONCAPA MACHINE ID:
150: END
151: }
152: my $choice=<>;
153: chomp($choice);
1.5 ! harris41 154: if ($lonHostID and $choice=~/^\s*$/) {
! 155: $choice=$lonHostID;
1.4 harris41 156: open(OUT,'>>/tmp/loncapa_updatequery.out');
157: print(OUT 'lonHostID'."\t".$choice."\n");
158: close(OUT);
159: $flag=1;
160: }
161: elsif ($choice!~/\_/ and $choice=~/^\w+$/) {
162: open(OUT,'>>/tmp/loncapa_updatequery.out');
163: print(OUT 'lonHostID'."\t".$choice."\n");
164: close(OUT);
165: $flag=1;
166: }
167: else {
168: print "Invalid input (only alphanumeric characters supported).\n";
169: }
170: }
1.1 harris41 171:
172: print(<<END);
173:
174: **** Domain ****
175: [this does NOT need to correspond to internet address domains,
176: examples might be "msu" or "bionet" or "vermontcc"]
177: END
178:
179: # get domain name
180: # accept if valid, if not valid, tell user and repeat
1.4 harris41 181: $flag=0;
1.5 ! harris41 182: my $lonDefDomain;
1.4 harris41 183: while (!$flag) {
184: if ($ipdomain) {
185: print(<<END);
186: ENTER LONCAPA DOMAIN [$ipdomain]:
187: END
188: }
189: else {
190: print(<<END);
191: ENTER LONCAPA DOMAIN:
192: END
193: }
194: my $choice=<>;
195: chomp($choice);
196: if ($ipdomain and $choice=~/^\s*$/) {
197: $choice=$ipdomain;
198: open(OUT,'>>/tmp/loncapa_updatequery.out');
199: print(OUT 'lonDefDomain'."\t".$choice."\n");
200: close(OUT);
1.5 ! harris41 201: $lonDefDomain=$choice;
1.4 harris41 202: $flag=1;
203: }
204: elsif ($choice!~/\_/ and $choice=~/^\w+$/) {
205: open(OUT,'>>/tmp/loncapa_updatequery.out');
206: print(OUT 'lonDefDomain'."\t".$choice."\n");
207: close(OUT);
1.5 ! harris41 208: $lonDefDomain=$choice;
1.4 harris41 209: $r='l';
210: $flag=1;
211: }
212: else {
213: print "Invalid input (only alphanumeric characters supported).\n";
214: }
215: }
1.1 harris41 216:
1.4 harris41 217: # get e-mail address
218: # accept if valid, if not valid, tell user and repeat
219: $flag=0;
220: my $lonAdmEmail;
221: while (!$flag) {
1.1 harris41 222: print(<<END);
223:
224: **** System Administrator's E-mail ****
225: E-mail address of the person who will manage this machine
1.4 harris41 226: [should be in the form somebody\@somewhere]
1.1 harris41 227: ENTER E-MAIL ADDRESS:
228: END
229:
1.4 harris41 230: my $choice=<>;
231: chomp($choice);
232: if ($choice=~/\@/) {
233: open(OUT,'>>/tmp/loncapa_updatequery.out');
234: print(OUT 'lonAdmEmail'."\t".$choice."\n");
235: close(OUT);
1.5 ! harris41 236: $lonAdmEmail=$choice;
1.4 harris41 237: $flag=1;
238: }
239: else {
240: print "Invalid input (this needs to look like an e-mail address!).\n";
241: }
242: }
243:
1.1 harris41 244: # update loncapa.conf
1.5 ! harris41 245: #my $confdir='/etc/httpd/conf/';
! 246: my $confdir='';
! 247: my $filename='loncapa.conf';
! 248: my %perlvar;
! 249: if (-e "$confdir$filename") {
! 250: open(CONFIG,'<'.$confdir.$filename) or die("Can't read $confdir$filename");
! 251: while (my $configline=<CONFIG>) {
! 252: if ($configline =~ /^[^\#]*PerlSetVar/) {
! 253: my ($unused,$varname,$varvalue)=split(/\s+/,$configline);
! 254: chomp($varvalue);
! 255: $perlvar{$varname}=$varvalue;
! 256: }
! 257: }
! 258: close(CONFIG);
! 259: }
! 260: $perlvar{'lonHostID'}=$lonHostID;
! 261: $perlvar{'lonDefDomain'}=$lonDefDomain;
! 262: $perlvar{'lonAdmEmail'}=$lonAdmEmail;
! 263: $perlvar{'lonRole'}=$lonRole;
! 264: unless ($perlvar{'lonSqlAccess'}) {
! 265: $perlvar{'lonSqlAccess'}='localhostkey';
! 266: }
! 267: unless ($perlvar{'lonLoadLim'}) {
! 268: $perlvar{'lonLoadLim'}='2.00';
! 269: }
! 270: unless ($perlvar{'lonExpire'}) {
! 271: $perlvar{'lonExpire'}='86400';
! 272: }
! 273: unless ($perlvar{'lonReceipt'}) {
! 274: my $lonReceipt='';
! 275: srand($$.time);
! 276: my @alnum=(0..9,a..z);
! 277: foreach my $i (1..20) {
! 278: $lonReceipt.=$alnum[int(rand(36))];
! 279: }
! 280: $perlvar{'lonReceipt'}=$lonReceipt;
! 281: }
! 282: open(OUT,">$confdir$filename") or
! 283: die("Cannot output to $confdir$filename\n");
! 284: foreach my $key (keys %perlvar) {
! 285: my $value=$perlvar{$key};
! 286: print(OUT <<END);
! 287: PerlSetVar $key $value
! 288: END
! 289: }
! 290: close(OUT);
1.1 harris41 291: }
292: </perlscript>
293: </file>
294: <file>
1.5 ! harris41 295: <target dist='default'>/</target>
1.1 harris41 296: <perlscript mode='fg'>
297: # read values from loncapa.conf
1.5 ! harris41 298: #my $confdir='/etc/httpd/conf/';
! 299: my $confdir='';
! 300: my $filename='loncapa.conf';
! 301: my %perlvar;
! 302: if (-e "$confdir$filename") {
! 303: open(CONFIG,'<'.$confdir.$filename) or
! 304: die("Can't read $confdir$filename");
! 305: while (my $configline=<CONFIG>) {
! 306: if ($configline =~ /^[^\#]*PerlSetVar/) {
! 307: my ($unused,$varname,$varvalue)=split(/\s+/,$configline);
! 308: chomp($varvalue);
! 309: $perlvar{$varname}=$varvalue;
! 310: }
! 311: }
! 312: close(CONFIG);
! 313: }
1.1 harris41 314: print(<<END);
315:
316: ===============================================================================
317: This is now the current configuration of your machine.
1.5 ! harris41 318: 1) Machine Name: $perlvar{'lonHostID'}
! 319: 2) Domain Name: $perlvar{'lonDefDomain'}
! 320: 3) System Administrator's E-mail Address: $perlvar{'lonAdmEmail'}
! 321: 4) Role: $perlvar{'lonRole'}
! 322: 5) Cache Expiration Time: $perlvar{'lonExpire'}
! 323: 6) Server Load: $perlvar{'lonLoadLim'}
1.1 harris41 324: 7) Everything is correct up above
325: ENTER A CHOICE OF 1-6 TO CHANGE, otherwise ENTER 7:
326: END
327:
328: # implement editing logic below, interactively
329: # update loncapa.conf until 7 is entered
1.5 ! harris41 330: my $choice=<>;
! 331: chomp($choice);
1.1 harris41 332:
333: </perlscript>
334: </file>
335: <file>
336: <target dist='default'>loncom/hosts.tab</target>
337: <perlscript mode='fg'>
338: unless (-l "<TARGET />") {
339: print(<<END);
340:
341: ===============================================================================
342: What hosts.tab would you like to have installed?
343: (hosts.tab is a listing of all other internet machines
344: that a server system considers to be valid server systems
345: on the LON-CAPA network)
346:
347: 1) PRODUCTION - you want to deliver courses today or sometime very soon
348: on this machine
1.5 ! harris41 349: 2) STAND-ALONE - you want this machine to run in 'stand-alone' mode and
! 350: not be connected to other LON-CAPA machines for now
! 351: 3) DEVELOPMENT - you want to play with or explore LON-CAPA
! 352: 4) Do not install hosts.tab right now
1.1 harris41 353:
1.5 ! harris41 354: ENTER 1, 2, 3, or 4:
1.1 harris41 355: END
356: # Option number 26 will install rawhide_hosts.tab, but
357: # the typical user does not want to be part of an intensive
358: # machine test cluster.
359:
360: # get input
361: # if valid then process, otherwise loop
1.5 ! harris41 362: my $choice=<>;
! 363: chomp($choice);
1.1 harris41 364:
365: }
366: </perlscript>
367: </file>
368: </files>
369: </piml>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>