[LON-CAPA-cvs] cvs: doc /loncapafiles updatequery.piml

harris41 lon-capa-cvs@mail.lon-capa.org
Sun, 12 May 2002 22:31:41 -0000


harris41		Sun May 12 18:31:41 2002 EDT

  Modified files:              
    /doc/loncapafiles	updatequery.piml 
  Log:
  grabbing lonDefDomain, lonHostID, lonAdmEmail, and lonRole
  
  
Index: doc/loncapafiles/updatequery.piml
diff -u doc/loncapafiles/updatequery.piml:1.3 doc/loncapafiles/updatequery.piml:1.4
--- doc/loncapafiles/updatequery.piml:1.3	Sun May 12 15:25:15 2002
+++ doc/loncapafiles/updatequery.piml	Sun May 12 18:31:41 2002
@@ -1,7 +1,7 @@
 <!-- updatequery.piml -->
 <!-- Scott Harrison -->
 
-<!-- $Id: updatequery.piml,v 1.3 2002/05/12 19:25:15 harris41 Exp $ -->
+<!-- $Id: updatequery.piml,v 1.4 2002/05/12 22:31:41 harris41 Exp $ -->
 
 <!--
 
@@ -31,8 +31,9 @@
 <targetroot>/</targetroot>
 <files>
 <file>
-<target dist='default'>/home/httpd/lonUsers</target>
+<target dist='default'>/</target>
 <perlscript mode='fg'>
+$|=1;
   print(&lt;&lt;END);
 
 
@@ -47,25 +48,31 @@
 *********************************************
 
 END
+sleep(3);
 </perlscript>
 </file>
 <file>
-<target dist='default'>/home/httpd/lonUsers</target>
+<target dist='default'>/home/httpd/lonUsers2/</target>
 <perlscript mode='fg'>
+$|=1;
 unless (-e "<TARGET />") {
   print(&lt;&lt;END);
            WELCOME TO LON-CAPA!
 
 If you have questions, please visit http://install.lon-capa.org
-or contact sharrison@install.lon-capa.org.
+or contact sharrison\@install.lon-capa.org.
 
 ===============================================================================
-The following 3 values are needed to configure LON-CAPA:
+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,'&gt;/tmp/loncapa_updatequery.out');
+close(OUT);
+
 # query for Machine Role
   print(&lt;&lt;END);
 **** Machine Role ****
@@ -76,12 +83,48 @@
 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
+1) Will this be a library server? (recommended if this is your first install)
 2) Or, will this be an access server?
-ENTER A CHOICE OF 1 or 2:
 END
+my $flag=0;
+my $r='';
+my $lonRole;
+while (!$flag) {
+  print "ENTER A CHOICE OF 1 or 2:\n";
+  my $choice=&lt;&gt;;
+  chomp($choice);
+  if ($choice==1) {
+    open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
+    print(OUT 'lonRole'."\t".'library'."\n");
+    close(OUT);
+    $lonRole='library';
+    $r='l';
+    $flag=1;
+  }
+  elsif ($choice==2) {
+    open(OUT,'&gt;&gt;/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(&lt;&lt;END);
 
@@ -91,32 +134,112 @@
  we recommend that you use a name based off of your institution;
  good examples: "msul1" or "bionetl1";
  bad examples: "loncapabox" or "studentsinside"]
-ENTER MACHINE ID NAME:
 END
 # get machine name
 # accept if valid, if not valid, tell user and repeat
+$flag=0;
+while (!$flag) {
+if ($ipdomain) {
+print(&lt;&lt;END);
+ENTER LONCAPA MACHINE ID [$lonHostID]:
+END
+}
+else {
+  print(&lt;&lt;END);
+ENTER LONCAPA MACHINE ID:
+END
+}
+  my $choice=&lt;&gt;;
+  chomp($choice);
+  if ($ipdomain and $choice=~/^\s*$/) {
+    $choice=$ipdomain;
+    open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
+    print(OUT 'lonHostID'."\t".$choice."\n");
+    close(OUT);
+    $flag=1;
+  }
+  elsif ($choice!~/\_/ and $choice=~/^\w+$/) {
+    open(OUT,'&gt;&gt;/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(&lt;&lt;END);
 
 **** Domain ****
 [this does NOT need to correspond to internet address domains,
  examples might be "msu" or "bionet" or "vermontcc"]
-ENTER LONCAPA DOMAIN:
 END
 
 # get domain name
 # accept if valid, if not valid, tell user and repeat
+$flag=0;
+while (!$flag) {
+if ($ipdomain) {
+print(&lt;&lt;END);
+ENTER LONCAPA DOMAIN [$ipdomain]:
+END
+}
+else {
+  print(&lt;&lt;END);
+ENTER LONCAPA DOMAIN:
+END
+}
+  my $choice=&lt;&gt;;
+  chomp($choice);
+  if ($ipdomain and $choice=~/^\s*$/) {
+    $choice=$ipdomain;
+    open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
+    print(OUT 'lonDefDomain'."\t".$choice."\n");
+    close(OUT);
+    $flag=1;
+  }
+  elsif ($choice!~/\_/ and $choice=~/^\w+$/) {
+    open(OUT,'&gt;&gt;/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(&lt;&lt;END);
 
 **** System Administrator's E-mail ****
 E-mail address of the person who will manage this machine
-[should be in the form somebody@somewhere]
+[should be in the form somebody\@somewhere]
 ENTER E-MAIL ADDRESS:
 END
 
-# get e-mail address
-# accept if valid, if not valid, tell user and repeat
+  my $choice=&lt;&gt;;
+  chomp($choice);
+  if ($choice=~/\@/) {
+    open(OUT,'&gt;&gt;/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>