home *** CD-ROM | disk | FTP | other *** search
/ Chip: Shareware for Win 95 / Chip-Shareware-Win95.bin / komunik / fp98b2 / fpsrvext.98 / fp98ext_.exe / RCDATA / CABINET / data.z / admin.pl < prev    next >
Perl Script  |  1997-07-28  |  5KB  |  175 lines

  1. #!/usr/local/bin/perl
  2. # Usage: admin.pl
  3. # Process automation script for Microsoft FrontPage Server Extensions.
  4. #
  5. # Copyright 1996 Microsoft Corporation -- All Rights Reserved.
  6. #
  7. #
  8.  
  9. $0 =~ m|(.*)/([^/]*$)|, $PROG = $2; $EXECDIR = $1; # find program name
  10.  
  11. # These are standard FrontPage Defaults
  12. $PORT = '80';
  13. $TYPE = 'msiis';
  14. $CREATEUSER = 'false';
  15. $ROOT = 'C:\\Program Files\\Microsoft FrontPage\\';
  16. $FTPRO = 'r';
  17.  
  18. # check for options
  19. while ($#ARGV >= 0) {
  20.    $_ = shift @ARGV;
  21.    $OPERATION = shift                 ,next if (/^-operation/);
  22.    $PORT = shift                      ,next if (/^-port/);
  23.    $TYPE = shift                      ,next if (/^-type/);
  24.    $WEB = shift                       ,next if (/^-web/);
  25.    $SERVCONF = shift                  ,next if (/^-servconf/);
  26.    $MULTIHOST = shift                 ,next if (/^-multihost/);
  27.    $USERNAME = shift                  ,next if (/^-username/);
  28.    $PASSWORD = shift                  ,next if (/^-password/);
  29.    $IPADDRESS = shift                 ,next if (/^-ipaddress/);
  30.    $CREATEUSER = shift                ,next if (/^-createuser/);
  31.    $GROUPS = shift                    ,next if (/^-groups/);
  32.    $LOCALGROUPS = shift               ,next if (/^-localgroups/);
  33.    $ROOT = shift                      ,next if (/^-root/);
  34.    $FOLDER = shift                    ,next if (/^-folder/);
  35.    $FTPROOT = shift                   ,next if (/^-ftproot/);
  36.    $FTPRW = shift                     ,next if (/^-ftprw/);
  37.  
  38.  
  39.    # we only get here for -h or unknown options
  40.    print STDERR "\nUnknown argument: $_" if (!/^-h/i);
  41.    print STDERR <<"ENDOFHELP";
  42.  
  43.       Usage:  $PROG [-operation <install>] 
  44.                     [-port <port>] 
  45.                     [-type <server type>] 
  46.                     [-web  <webname>] 
  47.                     [-servconf <server config file>] 
  48.                     [-multihost <hostname>] 
  49.                     [-username <username>] 
  50.                     [-password <password>] 
  51.                     [-ipaddress <ipadress>] 
  52.                     [-createuser <true|false>] 
  53.                     [-groups <comma separated list list of groups>] 
  54.                     [-localgroups <comma separated list list of local groups>] 
  55.                     [-root <frontpage root directory>] 
  56.                     [-folder <folder>] 
  57.                     [-ftproot <folder>] 
  58.                     [-ftprw <rw>] 
  59.                     [-h for help] 
  60. ENDOFHELP
  61.     exit 1;
  62. }
  63.  
  64. # Add user account if necessary
  65.  
  66. if ($CREATEUSER eq 'true')
  67. {
  68.     &step("Creating user account.");
  69.     if ($USERNAME ne '' && $PASSWORD ne '')
  70.     {
  71.         system("net user $USERNAME $PASSWORD /ADD");
  72.     }
  73.  
  74.     if ($USERNAME ne '' && $GROUPS ne '')
  75.     {
  76.         &step("Adding user to groups.");
  77.         foreach $grp ($GROUPS)
  78.         {
  79.             system("net group $grp $USERNAME /ADD");
  80.         }
  81.     }
  82.  
  83.     if ($USERNAME ne '' && $LOCALGROUPS ne '')
  84.     {
  85.         &step("Adding user to local groups.");
  86.         foreach $grp ($LOCALGROUPS)
  87.         {
  88.             system("net group $grp $USERNAME /ADD");
  89.         }
  90.     }
  91. }
  92.  
  93. # Create document root
  94. if ($FOLDER ne '' && ! -f $FOLDER)
  95. {
  96.     &step("Creating folder.");
  97.     system("mkdir $FOLDER");
  98. }
  99.  
  100. # Create WWW virtual server
  101. if ($FOLDER ne '')
  102. {
  103.     &step("Creating WWW virtual server.");
  104.     if ($MULTIHOST ne '')
  105.     {
  106.         system("iisadmin.exe -o add -s www -u / -d $FOLDER -v $MULTIHOST");
  107.     }
  108.     else
  109.     {
  110.         system("iisadmin.exe -o add -s www -u / -d $FOLDER");
  111.     }
  112. }
  113.         
  114. # Create FTP virtual server
  115. if ($FTPROOT ne '')
  116. {
  117.     &step("Creating FTP virtual server.");
  118.  
  119.     system("mkdir $FTPROOT") if ( ! -f $FTPROOT);
  120.  
  121.     $R = '';
  122.     $W = '';
  123.     
  124.     $R = '-read true' if (index($FTRPW,'r') ne $[-1);
  125.     $W = '-write true' if (index($FTRPW,'w') ne $[-1);
  126.  
  127.     if ($MULTIHOST ne '')
  128.     {
  129.         system("iisadmin.exe -o add -s ftp -u / -d $FTPROOT -v $MULTIHOST $R $W");
  130.     }
  131.     else
  132.     {
  133.         system("iisadmin.exe -o add -s www -u / -d $FTPROOT $R $W");
  134.     }
  135. }
  136.         
  137.  
  138. # Install FP against virtual server
  139. if ($OPERATION eq 'install')
  140. {
  141.     &step("Installing FrontPage Server Extensions.");
  142.     $cmd = 'fpsrvadm.exe -o install';
  143.     $cmd .= " -p $PORT" if ($PORT ne '');
  144.     $cmd .= " -t $TYPE" if ($TYPE ne '');
  145.     $cmd .= " -w $WEB" if ($WEB ne '');
  146.     $cmd .= " -s $SERVCONF" if ($SERVCONF ne '');
  147.     $cmd .= " -u $USERNAME" if ($USERNAME ne '');
  148.     $cmd .= " -pw $PASSWORD" if ($PASSWORD ne '');
  149.     system($cmd);
  150. }
  151.  
  152. exit 0;
  153.  
  154. #  Helper subroutines
  155.  
  156. # status message
  157. sub step {
  158.     local($message) = @_;
  159.     printf "Step %2d: $message\n", ++$step;
  160. }
  161.  
  162. # status message
  163. sub note {
  164.     local($message) = @_;
  165.     print "         $message\n";
  166. }
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.