4 +-----------------------------------------------------------------------+
7 | This file is part of the Roundcube Webmail client |
8 | Copyright (C) 2011, The Roundcube Dev Team |
9 | Licensed under the GNU GPL |
12 | Update an existing Roundcube installation with files from |
14 +-----------------------------------------------------------------------+
15 | Author: Thomas Bruederli <roundcube@gmail.com> |
16 +-----------------------------------------------------------------------+
18 $Id: installto.sh 5311 2011-10-06 08:20:11Z thomasb $
22 define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );
24 require_once INSTALL_PATH . 'program/include/clisetup.php';
26 $target_dir = unslashify($_SERVER['argv'][1]);
28 if (empty($target_dir) || !is_dir(realpath($target_dir)))
29 die("Invalid target: not a directory\nUsage: installto.sh <TARGET>\n");
31 // read version from iniset.php
32 $iniset = @file_get_contents($target_dir . '/program/include/iniset.php');
33 if (!preg_match('/define\(.RCMAIL_VERSION.,\s*.([0-9.]+[a-z-]*)/', $iniset, $m))
34 die("No valid Roundcube installation found at $target_dir\n");
38 if (version_compare($oldversion, RCMAIL_VERSION, '>='))
39 die("Installation at target location is up-to-date!\n");
41 echo "Upgrading from $oldversion. Do you want to continue? (y/N)\n";
42 $input = trim(fgets(STDIN));
44 if (strtolower($input) == 'y') {
46 echo "Copying files to target location...";
47 foreach (array('program','installer','bin','SQL','plugins','skins/default') as $dir) {
48 if (!system("rsync -avC " . INSTALL_PATH . "$dir/* $target_dir/$dir/")) {
53 foreach (array('index.php','.htaccess','config/main.inc.php.dist','config/db.inc.php.dist','CHANGELOG','README','UPGRADING') as $file) {
54 if (!system("rsync -av " . INSTALL_PATH . "$file $target_dir/$file")) {
62 echo "Running update script at target...\n";
63 system("cd $target_dir && bin/update.sh --version=$oldversion");
68 echo "Update cancelled. See ya!\n";