scripts/upgrade.pl: new script to let unix admins upgrade phpMyadmin
with one command and 5 seconds. To be improved, but is working fine here (tm). Based on: http://www.phpmyadmin.net/latest.txt
This commit is contained in:
@@ -5,6 +5,11 @@ phpMyAdmin - Changelog
|
||||
$Id$
|
||||
$Source$
|
||||
|
||||
2005-05-08 Olivier Mueller <om@omnis.ch>
|
||||
* scripts/upgrade.pl: new script to let unix admins upgrade phpMyadmin
|
||||
with one command and 5 seconds. To be improved, but is working fine
|
||||
here (tm). Based on: http://www.phpmyadmin.net/latest.txt
|
||||
|
||||
2005-05-05 Marc Delisle <lem9@users.sourceforge.net>
|
||||
* libraries/mysql_charsets.lib.php: bug #1186983, missing character
|
||||
sets and collations (temporary workaround)
|
||||
|
145
scripts/upgrade.pl
Executable file
145
scripts/upgrade.pl
Executable file
@@ -0,0 +1,145 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# upgrade.pl - automatic phpmyadmin upgrader
|
||||
#
|
||||
#
|
||||
# 2005-05-08, swix@users.sourceforge.net:
|
||||
# - created script
|
||||
#
|
||||
# TODO: check if current version is not already uptodate
|
||||
# (let's assume the sysadmin still has a brain... :-)
|
||||
#
|
||||
|
||||
|
||||
use strict;
|
||||
my $source_url = "http://www.phpmyadmin.net/latest.txt";
|
||||
|
||||
|
||||
#
|
||||
# usage
|
||||
#
|
||||
|
||||
if (!$ARGV[0]) {
|
||||
print "\n";
|
||||
print "usage: upgrade.pl target_directory\n\n";
|
||||
print " target_directory will be backuped and replaced\n";
|
||||
print " by the current version of phpMyAdmin, by keeping your\n";
|
||||
print " config.inc.php file.\n\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
my $targetdirectory = $ARGV[0];
|
||||
if ($targetdirectory =~ /^(.*)\/$/) {
|
||||
# remove trailing slash, if any
|
||||
print "$targetdirectory -> $1\n\n";
|
||||
}
|
||||
|
||||
if (!-d $targetdirectory) {
|
||||
print "error: target directory ($targetdirectory) does not exists\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (!-f "$targetdirectory/config.inc.php") {
|
||||
print "error: target directory doesn't seem to contain phpMyAdmin\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# get current release information
|
||||
#
|
||||
|
||||
my $version;
|
||||
my $filename;
|
||||
my $directory;
|
||||
my $releasedate;
|
||||
my @urls;
|
||||
|
||||
if (open(LATEST, "wget -o /dev/null -O - $source_url|")) {
|
||||
|
||||
$version = <LATEST>; chomp($version);
|
||||
$releasedate = <LATEST>; chomp($releasedate);
|
||||
$filename = "phpMyAdmin-" . $version . ".tar.gz";
|
||||
$directory = "phpMyAdmin-" . $version;
|
||||
|
||||
my $i = 0;
|
||||
|
||||
while(my $line = <LATEST>) {
|
||||
chomp($line);
|
||||
if ($line =~ /http/) {
|
||||
$urls[$i++] = $line;
|
||||
}
|
||||
}
|
||||
|
||||
close(LATEST);
|
||||
|
||||
} else {
|
||||
|
||||
print "error: open failed.\n";
|
||||
exit(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (-d $directory) {
|
||||
print "error: target directory ($directory) already exists, exiting\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# get file
|
||||
#
|
||||
|
||||
if (!-f $filename) {
|
||||
|
||||
print "getting phpMyAdmin $version\n";
|
||||
foreach my $url (@urls) {
|
||||
|
||||
print "trying $url...\n";
|
||||
system("wget -o /dev/null $url");
|
||||
if (-f $filename) {
|
||||
print "-> ok\n";
|
||||
last;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print "already got $filename, not downloading\n";
|
||||
}
|
||||
|
||||
|
||||
if (!-filename) {
|
||||
print "error: $filename download failed\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#
|
||||
# setup
|
||||
#
|
||||
|
||||
print "installing...\n";
|
||||
|
||||
system("tar xzf $filename");
|
||||
if (!$directory) {
|
||||
print "error: $directory still not exists after untar...\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
my $backupdir = $targetdirectory . "-" . time;
|
||||
print "- backup directory: $backupdir\n";
|
||||
|
||||
system("cp $directory/config.inc.php $directory/config.inc-dist.php");
|
||||
print "- original config.inc.php renamed to config.inc-dist.php\n";
|
||||
|
||||
system("cp $targetdirectory/config.inc.php $directory/config.inc.php");
|
||||
system("mv $targetdirectory $backupdir");
|
||||
system("mv $directory $targetdirectory");
|
||||
|
||||
|
||||
print "\ndone! phpMyAdmin $version installed in $directory\n";
|
||||
print "backup of your old installation in $backupdir\n\n";
|
||||
print "Enjoy! :-)\n\n";
|
Reference in New Issue
Block a user