$isValid = true;
            break;
        default:
            break;
    }
    return $isValid;
}
// script initializing
$cli = eZCLI::instance();
$script = eZScript::instance(array('description' => "\n" . "This script will upgrade ezwebin.", 'use-session' => false, 'use-modules' => true, 'use-extensions' => true, 'user' => true));
$script->startup();
$scriptOptions = $script->getOptions("[to-version:][repository:][package:][package-dir:][url:][auto-mode:]", "", array('to-version' => "Specify what upgrade path to use. \n" . " available options: '1.2-0' - upgrade 1.1-1 to 1.2-0\n" . "                    '1.3-0' - upgrade 1.2-0 to 1.3-0\n" . "                    '1.4-0' - upgrade 1.3-0 to 1.4-0", 'repository' => "Path to repository where unpacked(unarchived) packages are \n" . "placed. it's relative to 'var/[site.ini].[FileSettings].[StorageDir]/[package.ini].[RepositorySettings].[RepositoryDirectory]' \n" . "(default is 'var/storage/packages/ez_systems')", 'package' => "Package(s) to install, f.e. 'ezwebin_classes'", 'package-dir' => "Path to directory with packed(ezpkg) packages(default is '/tmp/ezwebin') ", 'url' => "URL to download packages, f.e. 'http://packages.ez.no/ezpublish/3.9'.\n" . "'package-dir' can be specified to store uploaded packages on local computer.\n" . "if 'package-dir' is not specified then default dir('/tmp/ezwebin') will be used.", 'auto-mode' => "[on/off]. Do not ask what to do in case of confilicts. By default is 'on'"), false, array('user' => true));
if (!$scriptOptions['siteaccess']) {
    showNotice("No siteaccess provided, will use default siteaccess");
} else {
    $siteAccessExists = checkSiteaccess($scriptOptions['siteaccess']);
    if ($siteAccessExists) {
        showNotice("Using siteaccess " . $scriptOptions['siteaccess']);
        $script->setUseSiteAccess($scriptOptions['siteaccess']);
    } else {
        showError("Siteaccess '" . $scriptOptions['siteaccess'] . "' does not exist. Exiting...");
    }
}
$script->initialize();
/**************************************************************
* process options                                             *
***************************************************************/
$toVersion = '1.2-0';
if ($scriptOptions['to-version']) {
    $version = $scriptOptions['to-version'];
    if (isValidWebinUpgradeVersion($version)) {
function siteAccessMap($siteAccessNameArray)
{
    if (is_array($siteAccessNameArray)) {
        //Build array map of checked siteaccesses.
        //Siteaccess name as key, points to root dir, to be used in eZINI methods.
        $siteAccessMap = array();
        foreach ($siteAccessNameArray as $siteAccessName) {
            $mapEntry = checkSiteaccess($siteAccessName);
            $siteAccessMap[] = $mapEntry;
        }
        return $siteAccessMap;
    } else {
        return false;
    }
}
require_once 'autoload.php';
// script initializing
$cli = eZCLI::instance();
$script = eZScript::instance(array('description' => "\n" . "Install eZWebin package\n", 'use-session' => false, 'use-modules' => true, 'use-extensions' => true, 'user' => true));
$script->startup();
$scriptOptions = $script->getOptions("[repository:][package:][package-dir:][url:][admin-siteaccess:][user-siteaccess:][auto-mode:]", "", array('repository' => "Path to repository where unpacked(unarchived) packages are \n" . "placed. it's relative to 'var/[site.ini].[FileSettings].[StorageDir]/[package.ini].[RepositorySettings].[RepositoryDirectory]' \n" . "(default is 'var/storage/packages/ez_systems')", 'package-dir' => "Path to directory with packed(ezpkg) packages(default is '/tmp/ezwebin') ", 'url' => "URL to download packages, f.e. 'http://packages.ez.no/ezpublish/3.9'.\n" . "'package-dir' can be specified to store uploaded packages on local computer.\n" . "if 'package-dir' is not specified then default dir('/tmp/ezwebin') will be used.", 'admin-siteaccess' => 'Will be used as base for eZWebin admin siteaccess', 'user-siteaccess' => 'Will be used as base for eZWebin user siteaccesses', 'auto-mode' => "[on/off]. Do not ask what to do in case of confilicts. By default is 'on'"), false, array('user' => true));
if (!$scriptOptions['admin-siteaccess']) {
    showError("No admin siteaccess provided");
}
if (!$scriptOptions['user-siteaccess']) {
    showError("No user siteaccess provided");
}
$adminSiteaccess = $scriptOptions['admin-siteaccess'];
$userSiteaccess = $scriptOptions['user-siteaccess'];
checkSiteaccess($adminSiteaccess, true);
checkSiteaccess($userSiteaccess, true);
showNotice("Using siteaccess '" . $adminSiteaccess . "'");
$script->setUseSiteAccess($adminSiteaccess);
$script->initialize();
/**************************************************************
* process options                                             *
***************************************************************/
//
// 'repository' option
//
$packageRepository = $scriptOptions['repository'];
if (!$packageRepository) {
    $packageRepository = repositoryByVendor(defaultVendor());
}
//
// 'package' option