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); } }