File:  [LON-CAPA] / doc / loncapafiles / updatequery.piml
Revision 1.4: download - view: text, annotated - select for diffs
Sun May 12 22:31:41 2002 UTC (21 years, 11 months ago) by harris41
Branches: MAIN
CVS tags: HEAD
grabbing lonDefDomain, lonHostID, lonAdmEmail, and lonRole

<!-- 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(&lt;&lt;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(&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.

===============================================================================
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 ****
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=&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);

**** 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(&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"]
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]
ENTER E-MAIL ADDRESS:
END

  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>
</file>
<file>
<target dist='default'>/home/httpd/lonUsers2</target>
<perlscript mode='fg'>
# read values from loncapa.conf
  print(&lt;&lt;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(&lt;&lt;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>