]> git.wh0rd.org - tt-rss.git/blobdiff - plugins/updater/init.php
remove $link
[tt-rss.git] / plugins / updater / init.php
index 8a7c8a9ca8d31a240da2178c1e814383dbd48eb9..856a0cbf9a7977e42744e437535d07b398829b21 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 class Updater extends Plugin {
 
-       private $link;
        private $host;
 
        function about() {
@@ -12,7 +11,6 @@ class Updater extends Plugin {
        }
 
        function init($host) {
-               $this->link = $host->get_link();
                $this->host = $host;
 
                $host->add_hook($host::HOOK_PREFS_TAB, $this);
@@ -22,7 +20,7 @@ class Updater extends Plugin {
                        $this);
        }
 
-       function update_self_step($link, $step, $params, $force = false) {
+       function update_self_step( $step, $params, $force = false) {
                // __FILE__ is in plugins/updater so we need to go one level up
                $work_dir = dirname(dirname(dirname(__FILE__)));
                $parent_dir = dirname($work_dir);
@@ -42,7 +40,7 @@ class Updater extends Plugin {
                        case 0:
                                array_push($log, "Work directory: $work_dir");
 
-                               if (!is_writable($work_dir) && !is_writable("$parent_dir")) {
+                               if (!is_writable($work_dir) || !is_writable("$parent_dir")) {
                                        $user = posix_getpwuid(posix_geteuid());
                                        $user = $user["name"];
                                        array_push($log, "Both tt-rss and parent directories should be writable as current user ($user).");
@@ -59,6 +57,10 @@ class Updater extends Plugin {
                                        $stop = true; break;
                                }
 
+                               // bah, also humbug
+                               putenv("PATH=" . getenv("PATH") . PATH_SEPARATOR . "/bin" .
+                                       PATH_SEPARATOR . "/usr/bin");
+
                                array_push($log, "Checking for tar...");
 
                                $system_rc = 0;
@@ -275,13 +277,13 @@ class Updater extends Plugin {
                return array("step" => $step, "stop" => $stop, "params" => $params, "log" => $log);
        }
 
-       function update_self_cli($link, $force = false) {
+       function update_self_cli( $force = false) {
                $step = 0;
                $stop = false;
                $params = array();
 
                while (!$stop) {
-                       $rc = $this->update_self_step($link, $step, $params, $force);
+                       $rc = $this->update_self_step( $step, $params, $force);
 
                        $params = $rc['params'];
                        $stop = $rc['stop'];
@@ -294,8 +296,10 @@ class Updater extends Plugin {
        }
 
        function update_self($args) {
-               _debug("Warning: self-updating is experimental. Use at your own risk.");
-               _debug("Please backup your tt-rss directory before continuing. Your database will not be modified.");
+               _debug("READ THE FOLLOWING BEFORE CONTINUING!");
+               _debug("* It is suggested to backup your tt-rss directory first.");
+               _debug("* Your database will not be modified.");
+               _debug("* Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes.");
                _debug("Type 'yes' to continue.");
 
                $input = read_stdin();
@@ -303,7 +307,7 @@ class Updater extends Plugin {
                if ($input != 'yes' && $input != 'force')
                        exit;
 
-               $this->update_self_cli($link, $input == 'force');
+               $this->update_self_cli( $input == 'force');
        }
 
        function get_prefs_js() {
@@ -317,7 +321,7 @@ class Updater extends Plugin {
                        print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Update Tiny Tiny RSS')."\">";
 
                        if ($_SESSION["pref_last_version_check"] + 86400 + rand(-1000, 1000) < time()) {
-                               $_SESSION["version_data"] = @check_for_update($this->link);
+                               $_SESSION["version_data"] = @check_for_update();
                                $_SESSION["pref_last_version_check"] = time();
                        }
 
@@ -342,11 +346,18 @@ class Updater extends Plugin {
        }
 
        function updateSelf() {
+               print_warning(__("Do not close this dialog until updating is finished."));
+
                print "<form style='display : block' name='self_update_form' id='self_update_form'>";
 
-               print "<div class='error'>".__("Do not close this dialog until updating is finished. Backup your tt-rss directory before continuing.")."</div>";
+               print "<style type='text/css'>
+                       li.notice { font-style : italic; color : red; }
+               </style>";
 
                print "<ul class='selfUpdateList' id='self_update_log'>";
+               print "<li class='notice'>" .__("It is suggested to backup your tt-rss directory first.") . "</li>";
+               print "<li class='notice'>" . __("Your database will not be modified.") . "</li>";
+               print "<li class='notice'>" . __("Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes.") . "</li>";
                print "<li>" . __("Ready to update.") . "</li>";
                print "</ul>";
 
@@ -365,7 +376,7 @@ class Updater extends Plugin {
                $force = (bool) $_REQUEST["force"];
 
                if (($_SESSION["access_level"] >= 10 || SINGLE_USER_MODE) && CHECK_FOR_NEW_VERSION) {
-                       print   json_encode($this->update_self_step($this->link, $step, $params, $force));
+                       print   json_encode($this->update_self_step( $step, $params, $force));
                }
        }