/ / $|=1; print(<<END); ********************************************* ********************************************* **** **** **** LON-CAPA SYSTEM INFORMATION REQUEST **** **** **** **** Please respond to the choices below **** **** **** ********************************************* ********************************************* END sleep(3); /home/httpd/lonUsers2/ $|=1; unless (-e "") { 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 } /home/httpd/lonUsers2 # 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 loncom/hosts.tab unless (-l "") { 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 }