source: github/bin/installto.sh @ 66d2152

HEADcourier-fixdev-browser-capabilitiespdorelease-0.8
Last change on this file since 66d2152 was 54d0746, checked in by thomascube <thomas@…>, 15 months ago

Copy all skins in installto script (#1488376)

  • Property mode set to 100755
File size: 2.8 KB
RevLine 
[e6bb836]1#!/usr/bin/env php
2<?php
3/*
4 +-----------------------------------------------------------------------+
5 | bin/installto.sh                                                      |
6 |                                                                       |
7 | This file is part of the Roundcube Webmail client                     |
8 | Copyright (C) 2011, The Roundcube Dev Team                            |
[7fe3811]9 |                                                                       |
10 | Licensed under the GNU General Public License version 3 or            |
11 | any later version with exceptions for skins & plugins.                |
12 | See the README file for a full license statement.                     |
[e6bb836]13 |                                                                       |
14 | PURPOSE:                                                              |
15 |   Update an existing Roundcube installation with files from           |
16 |   this version                                                        |
17 +-----------------------------------------------------------------------+
18 | Author: Thomas Bruederli <roundcube@gmail.com>                        |
19 +-----------------------------------------------------------------------+
20
21 $Id$
22
23*/
24
25define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );
26
[6cc3f58]27require_once INSTALL_PATH . 'program/include/clisetup.php';
[e6bb836]28
29$target_dir = unslashify($_SERVER['argv'][1]);
30
31if (empty($target_dir) || !is_dir(realpath($target_dir)))
32  die("Invalid target: not a directory\nUsage: installto.sh <TARGET>\n");
33
34// read version from iniset.php
35$iniset = @file_get_contents($target_dir . '/program/include/iniset.php');
36if (!preg_match('/define\(.RCMAIL_VERSION.,\s*.([0-9.]+[a-z-]*)/', $iniset, $m))
37  die("No valid Roundcube installation found at $target_dir\n");
38
39$oldversion = $m[1];
40
41if (version_compare($oldversion, RCMAIL_VERSION, '>='))
42  die("Installation at target location is up-to-date!\n");
43
44echo "Upgrading from $oldversion. Do you want to continue? (y/N)\n";
45$input = trim(fgets(STDIN));
46
47if (strtolower($input) == 'y') {
48  $err = false;
49  echo "Copying files to target location...";
[54d0746]50  foreach (array('program','installer','bin','SQL','plugins','skins') as $dir) {
[373b112]51    if (!system("rsync -avC " . INSTALL_PATH . "$dir/* $target_dir/$dir/")) {
[e6bb836]52      $err = true;
53      break;
54    }
55  }
56  foreach (array('index.php','.htaccess','config/main.inc.php.dist','config/db.inc.php.dist','CHANGELOG','README','UPGRADING') as $file) {
[373b112]57    if (!system("rsync -av " . INSTALL_PATH . "$file $target_dir/$file")) {
[e6bb836]58      $err = true;
59      break;
60    }
61  }
62  echo "done.\n\n";
63 
64  if (!$err) {
65    echo "Running update script at target...\n";
66    system("cd $target_dir && bin/update.sh --version=$oldversion");
67    echo "All done.\n";
68  }
69}
70else
71  echo "Update cancelled. See ya!\n";
72
73?>
Note: See TracBrowser for help on using the repository browser.