コード例 #1
0
ファイル: cliWorkspaces.php プロジェクト: nshong/processmaker
function run_workspace_backup($args, $opts)
{
    $workspaces = array();
    if (sizeof($args) > 2) {
        $filename = array_pop($args);
        foreach ($args as $arg) {
            $workspaces[] = new workspaceTools($arg);
        }
    } else {
        if (sizeof($args) > 0) {
            $workspace = new workspaceTools($args[0]);
            $workspaces[] = $workspace;
            if (sizeof($args) == 2) {
                $filename = $args[1];
            } else {
                $filename = "{$workspace->name}.tar";
            }
        } else {
            throw new Exception("No workspace specified for backup");
        }
    }
    foreach ($workspaces as $workspace) {
        if (!$workspace->workspaceExists()) {
            throw new Exception("Workspace '{$workspace->name}' not found");
        }
    }
    //If this is a relative path, put the file in the backups directory
    if (strpos($filename, "/") === false && strpos($filename, '\\') === false) {
        $filename = PATH_DATA . "backups/{$filename}";
    }
    CLI::logging("Backing up to {$filename}\n");
    $backup = workspaceTools::createBackup($filename);
    foreach ($workspaces as $workspace) {
        $workspace->backup($backup);
    }
    CLI::logging("\n");
    workspaceTools::printSysInfo();
    foreach ($workspaces as $workspace) {
        CLI::logging("\n");
        $workspace->printMetadata(false);
    }
}