Thomas Bruederli
2012-06-13 5218701a4ac1507c472c2bddaca9941f4a4af1d7
Improve getopt feature for command line scripts
1 files modified
26 ■■■■ changed files
program/include/clisetup.php 26 ●●●● patch | view | raw | blame | history
program/include/clisetup.php
@@ -5,7 +5,7 @@
 | program/include/clisetup.php                                          |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2010, The Roundcube Dev Team                            |
 | Copyright (C) 2010-2012, The Roundcube Dev Team                       |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
@@ -34,24 +34,26 @@
function get_opt($aliases=array())
{
    $args = array();
    for ($i=1; $i<count($_SERVER['argv']); $i++)
    {
    for ($i=1; $i < count($_SERVER['argv']); $i++) {
        $arg = $_SERVER['argv'][$i];
        if (substr($arg, 0, 2) == '--')
        {
        $value = true;
        $key = null;
        if ($arg[0] == '-') {
            $key = preg_replace('/^-+/', '', $arg);
            $sp = strpos($arg, '=');
            $key = substr($arg, 2, $sp - 2);
            if ($sp > 0) {
                $key = substr($key, 0, $sp - 2);
            $value = substr($arg, $sp+1);
        }
        else if ($arg{0} == '-')
        {
            $key = substr($arg, 1);
            else if (strlen($_SERVER['argv'][$i+1]) && $_SERVER['argv'][$i+1][0] != '-') {
            $value = $_SERVER['argv'][++$i];
        }
        else
            continue;
        $args[$key] = preg_replace(array('/^["\']/', '/["\']$/'), '', $value);
            $args[$key] = is_string($value) ? preg_replace(array('/^["\']/', '/["\']$/'), '', $value) : $value;
        }
        else
            $args[] = $arg;
        if ($alias = $aliases[$key])
            $args[$alias] = $args[$key];