home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / usr / X11R6 / lib / X11 / cbb / contrib / fetch-latest.pl next >
Perl Script  |  1998-10-07  |  4KB  |  149 lines

  1. #!/usr/bin/perl
  2. #  fetch-latest.pl - Fetch and (possibly) install the latest version of CBB
  3. #                    Requires use of the "ftp" command
  4. #
  5. #  Written by Curtis Olson.  Started October 4, 1996.
  6. #
  7. #  Copyright (C) 1996  Curtis L. Olson  - curt@sledge.mn.org
  8. #
  9. #  This program is free software; you can redistribute it and/or modify
  10. #  it under the terms of the GNU General Public License as published by
  11. #  the Free Software Foundation; either version 2 of the License, or
  12. #  (at your option) any later version.
  13. #
  14. #  This program is distributed in the hope that it will be useful,
  15. #  but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. #  GNU General Public License for more details.
  18. #
  19. #  You should have received a copy of the GNU General Public License
  20. #  along with this program; if not, write to the Free Software
  21. #  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  22. #
  23. # $Id: fetch-latest.pl,v 1.3 1997/06/13 14:42:58 curt Exp $
  24. # (Log is kept at end of this file)
  25.  
  26.  
  27. #----------------------------------------------------------------------------
  28. # Global variables
  29. #----------------------------------------------------------------------------
  30.  
  31. if ( -f "/etc/debian_version" ) {
  32.     $file = "cbb-latest.deb";
  33. } else {
  34.     $file = "cbb-latest.tar.gz";
  35. }
  36. $cbbhost = "ftp.me.umn.edu";
  37. $account = "anonymous";
  38.  
  39. # get user name                                                        
  40. $user = (getpwuid($<))[0] || $ENV{LOGNAME} || "Luser";
  41. $host = `hostname`; chop($host);
  42.  
  43. $passwd = "$user\@$host";
  44. $dir = "/pub/finance";
  45.  
  46. $temp = "/var/tmp";
  47. $dest = "$temp/$file";
  48.  
  49.  
  50. #----------------------------------------------------------------------------
  51. # Fetch the latest version
  52. #----------------------------------------------------------------------------
  53.  
  54. print "Fetching CBB from ftp://$cbbhost$dir\n\n";
  55.  
  56. chdir($temp);
  57. $command = 
  58.     "echo \"open $cbbhost\n" .
  59.     "user $account $passwd\n" .
  60.     "bin\n".
  61.     "hash\n".
  62.     "cd $dir\n" .
  63.     "get $file\n" .
  64.     "quit\n\"";
  65.  
  66. # print "$command\n";
  67.  
  68. #open(FTP, "|ftp -n -i -v -d");
  69. open(FTP, "|ftp -n -i -d");
  70. print FTP "open $cbbhost\n";
  71. print FTP "user $account $passwd\n";
  72. print FTP "bin\n";
  73. print FTP "hash\n";
  74. print FTP "cd $dir\n";
  75. print FTP "get $file\n";
  76. print FTP "quit\n";
  77. close(FTP);
  78.  
  79.  
  80. #----------------------------------------------------------------------------
  81. # Extract ...
  82. #----------------------------------------------------------------------------
  83.  
  84. if ( ! -f "/etc/debian_version" ) {
  85.     print "\nExtracting in $temp\n\n";
  86.     open( TAR, "tar xvzf $temp/$file|" );
  87.  
  88.     while ( <TAR> ) {
  89.     # print "    $_";
  90.  
  91.     @files = split(/\//, $_);
  92.     
  93.     $cbbver = @files[0];
  94.     }
  95.  
  96.     close( TAR );
  97.  
  98.     print "CBB version is $cbbver\n";
  99. }
  100.  
  101.  
  102. #----------------------------------------------------------------------------
  103. # Install ...
  104. #----------------------------------------------------------------------------
  105.  
  106. print "\nInstalling ...\n\n";
  107.  
  108. if ( -f "/etc/debian_version" ) {
  109.     system("dpkg -i $dest");
  110. } else {
  111.     chdir("$temp/$cbbver");
  112.     system("make install");
  113. }
  114.  
  115.  
  116. #----------------------------------------------------------------------------
  117. # Cleanup
  118. #----------------------------------------------------------------------------
  119.  
  120. chdir("/");
  121. unlink("$temp/$file");
  122.  
  123. if ( ! -f "/etc/debian_version" ) {
  124.     if ( $cbbver =~ m/^cbb/ ) {
  125.     # if the untar succeeded
  126.     system("rm -rf $temp/$cbbver");
  127.     }
  128. }
  129.  
  130. print "\nRetreival and Installation finished.\n";
  131. print "If the installation succeeded, you should immediately exit and and rerun CBB.\n";
  132. print "This script is called \"fetch-latest.pl\" and can be run\n";
  133. print "independently.  It is located in the contrib directory.\n\n";
  134. print "Press return to exit:  ";
  135. $junk = <>;
  136.  
  137.  
  138. #----------------------------------------------------------------------------
  139. # $Log: fetch-latest.pl,v $
  140. # Revision 1.3  1997/06/13 14:42:58  curt
  141. # Fetch the latest debian package instead if you are running on a debian system.
  142. #
  143. # Revision 1.2  1996/10/04 19:48:28  curt
  144. # Added a script to automatically fetch and install the latest version of CBB.
  145. #
  146. # Revision 1.1  1996/10/04 19:22:09  curt
  147. # Initial revision.
  148. #
  149.