118 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| #!/usr/bin/env php
 | |
| <?php
 | |
| /**
 | |
|  * StatusNet - the distributed open-source microblogging tool
 | |
|  * Copyright (C) 2011, StatusNet, Inc.
 | |
|  *
 | |
|  * This program is free software: you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU Affero General Public License as published by
 | |
|  * the Free Software Foundation, either version 3 of the License, or
 | |
|  * (at your option) any later version.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU Affero General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU Affero General Public License
 | |
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
|  *
 | |
|  * @category Installation
 | |
|  * @package  Installation
 | |
|  *
 | |
|  * @author   Brion Vibber <brion@status.net>
 | |
|  * @author   Evan Prodromou <evan@status.net>
 | |
|  * @license  GNU Affero General Public License http://www.gnu.org/licenses/
 | |
|  * @version  1.0.0
 | |
|  * @link     http://status.net
 | |
|  */
 | |
| 
 | |
| if (php_sapi_name() !== 'cli') {
 | |
|     exit(1);
 | |
| }
 | |
| 
 | |
| define('INSTALLDIR', dirname(dirname(__FILE__)));
 | |
| set_include_path(get_include_path() . PATH_SEPARATOR . INSTALLDIR . '/extlib');
 | |
| 
 | |
| require_once INSTALLDIR . '/lib/installer.php';
 | |
| 
 | |
| class EmailMultihomeInstaller extends Installer
 | |
| {
 | |
|     protected $address;
 | |
| 
 | |
|     function __construct($address)
 | |
|     {
 | |
|         $this->address = $address;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Go for it!
 | |
|      * @return boolean success
 | |
|      */
 | |
|     function main()
 | |
|     {
 | |
|         if (!$this->checkPrereqs()) {
 | |
|             return false;
 | |
|         }
 | |
|         if ($this->prepare()) {
 | |
|             return $this->handle();
 | |
|        } else {
 | |
|             $this->showHelp();
 | |
|             return false;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get our input parameters...
 | |
|      * @return boolean success
 | |
|      */
 | |
| 
 | |
|     function prepare()
 | |
|     {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     function handle()
 | |
|     {
 | |
|         return $this->doInstall();
 | |
|     }
 | |
| 
 | |
|     function showHelp()
 | |
|     {
 | |
|         print "USAGE: installbyemail.php <email-address>";
 | |
|     }
 | |
| 
 | |
|     function warning($message, $submessage='')
 | |
|     {
 | |
|         print $this->html2text($message) . "\n";
 | |
|         if ($submessage != '') {
 | |
|             print "  " . $this->html2text($submessage) . "\n";
 | |
|         }
 | |
|         print "\n";
 | |
|     }
 | |
| 
 | |
|     function updateStatus($status, $error=false)
 | |
|     {
 | |
|         if ($this->verbose || $error) {
 | |
|             if ($error) {
 | |
|                 print "ERROR: ";
 | |
|             }
 | |
|             print $this->html2text($status);
 | |
|             print "\n";
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private function html2text($html)
 | |
|     {
 | |
|         // break out any links for text legibility
 | |
|         $breakout = preg_replace('/<a[^>+]\bhref="(.*)"[^>]*>(.*)<\/a>/',
 | |
|                                  '\2 <\1>',
 | |
|                                  $html);
 | |
|         return html_entity_decode(strip_tags($breakout), ENT_QUOTES, 'UTF-8');
 | |
|     }
 | |
| }
 | |
| 
 | |
| $installer = new EmailMultihomeInstaller();
 | |
| $ok = $installer->main($argv[1]);
 | |
| exit($ok ? 0 : 1);
 |