Clean Command Added
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
b6c7fbbbaf
commit
aeff1afdb7
|
|
@ -15,7 +15,7 @@ class BackupCommand extends Command
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'backup {containers*} {--data} {--mysql} {--upload}';
|
||||
protected $signature = 'backup {containers*} {--data} {--mysql} {--upload} {--clean}';
|
||||
|
||||
/**
|
||||
* The description of the command.
|
||||
|
|
@ -47,6 +47,14 @@ class BackupCommand extends Command
|
|||
'--password' => env('MYSQL_PASSWORD'),
|
||||
]);
|
||||
}
|
||||
|
||||
if ($this->option('clean')) {
|
||||
$files = glob(env('BACKUP_FOLDER') . '/*');
|
||||
foreach($files as $file){
|
||||
is_file($file) ? unlink($file) : null;
|
||||
}
|
||||
}
|
||||
|
||||
$this->line("<fg=blue>|-> The backup and upload process is finished.</>");
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,13 +33,14 @@ class ContainerBackupCommand extends Command
|
|||
public function handle()
|
||||
{
|
||||
$containers = $this->argument('containers');
|
||||
$bm = new BackupManager();
|
||||
$backupManager = new BackupManager();
|
||||
$backupManager->setBackupFolder(env('BACKUP_FOLDER'));
|
||||
foreach ($containers as $container) {
|
||||
$this->line("<fg=blue>|-> Backing up {$container}...</>");
|
||||
$builder = new ContainerBuilder();
|
||||
$builder->setBackupFolder(env('BACKUP_FOLDER'))->setContainerName($container);
|
||||
$bm->setBuilder($builder)->execute();
|
||||
if ($bm->getShell()->getReturnValue() == 0) {
|
||||
$builder->setContainerName($container);
|
||||
$backupManager->setBuilder($builder)->execute();
|
||||
if ($backupManager->getShell()->getReturnValue() == 0) {
|
||||
$this->line("<fg=green> |-> {$container} successfully backed up.</>");
|
||||
} else {
|
||||
$this->line("<fg=red> |-> {$container} could not be backed up.</>");
|
||||
|
|
|
|||
|
|
@ -36,9 +36,9 @@ class DataBackupCommand extends Command
|
|||
|
||||
$bm = new BackupManager();
|
||||
$builder = new DataBuilder();
|
||||
$builder->setDataFolder(env('DATA_FOLDER'))
|
||||
->setBackupFolder(env('BACKUP_FOLDER'));
|
||||
$bm->setBuilder($builder)->execute();
|
||||
$builder->setDataFolder(env('DATA_FOLDER'));
|
||||
$bm->setBackupFolder(env('BACKUP_FOLDER'))
|
||||
->setBuilder($builder)->execute();
|
||||
|
||||
if ($bm->getShell()->getReturnValue() == 0) {
|
||||
$this->line("<fg=green> |-> Data folder successfully backed up.</>");
|
||||
|
|
|
|||
|
|
@ -44,9 +44,11 @@ class MysqlBackupCommand extends Command
|
|||
|
||||
$builder = new DatabaseBuilder();
|
||||
$builder->setCredential($credentials);
|
||||
$builder->setBackupFolder(env('BACKUP_FOLDER'))
|
||||
->setContainerName($container);
|
||||
$bm->setBuilder($builder)->execute();
|
||||
$builder->setContainerName($container);
|
||||
|
||||
$bm->setBackupFolder(env('BACKUP_FOLDER'))
|
||||
->setBuilder($builder)->execute();
|
||||
|
||||
if ($bm->getShell()->getReturnValue() == 0) {
|
||||
$this->line("<fg=green> |-> Mysql databases successfully backed up.</>");
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace App\Utils;
|
||||
|
||||
use AdamBrett\ShellWrapper\Command\Builder as CommandBuilder;
|
||||
use AdamBrett\ShellWrapper\Runners\Exec;
|
||||
use App\Exceptions\BackupFolderNotFoundException;
|
||||
use App\Exceptions\ExportFolderNotFoundException;
|
||||
|
|
@ -11,19 +10,14 @@ use Throwable;
|
|||
class BackupManager
|
||||
{
|
||||
private $exportFolder;
|
||||
private $dataFolder;
|
||||
private $backupFolder;
|
||||
private $shell;
|
||||
private $params;
|
||||
private $builder;
|
||||
private $containerName;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->shell = new Exec();
|
||||
$this->builder = new CommandBuilder("");
|
||||
$this->backupFolder = ".";
|
||||
$this->exportFolder = ".";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -38,18 +32,6 @@ class BackupManager
|
|||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $dataFolder
|
||||
* @return BackupManager
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function setDataFolder($dataFolder): BackupManager
|
||||
{
|
||||
throw_if(!file_exists($dataFolder), new BackupFolderNotFoundException('Data folder not exist!'));
|
||||
$this->dataFolder = $dataFolder;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $exportFolder
|
||||
* @return BackupManager
|
||||
|
|
@ -62,34 +44,6 @@ class BackupManager
|
|||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $param
|
||||
* @return BackupManager
|
||||
*/
|
||||
public function addParams(array $params): BackupManager
|
||||
{
|
||||
$this->params = $params;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $containerName
|
||||
* @return BackupManager
|
||||
*/
|
||||
public function setContainerName($containerName): BackupManager
|
||||
{
|
||||
$this->containerName = $containerName;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getParams()
|
||||
{
|
||||
return $this->params;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Exec
|
||||
*/
|
||||
|
|
@ -106,14 +60,6 @@ class BackupManager
|
|||
return $this->backupFolder;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getDataFolder()
|
||||
{
|
||||
return $this->dataFolder;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
|
|
@ -130,36 +76,24 @@ class BackupManager
|
|||
return $this->containerName;
|
||||
}
|
||||
|
||||
/*
|
||||
* @param int $mode
|
||||
* @return BackupManager
|
||||
*/
|
||||
/*public function builder(int $mode): BackupManager
|
||||
{
|
||||
switch ($mode) {
|
||||
case BuilderMode::CONTAINER:
|
||||
$this->builder = new Builder("docker export {$this->containerName} -o {$this->backupFolder}/{$this->containerName}.tar.gz");
|
||||
break;
|
||||
case BuilderMode::DATA:
|
||||
$this->builder = new Builder("tar -zcf");
|
||||
break;
|
||||
case BuilderMode::MYSQL:
|
||||
$this->builder = new Builder("docker exec");
|
||||
break;
|
||||
default:
|
||||
$this->builder = new Builder("");
|
||||
}
|
||||
return $this;
|
||||
}*/
|
||||
|
||||
public function setBuilder(Builder $builder): BackupManager
|
||||
{
|
||||
$this->builder = $builder->builder();
|
||||
$this->builder = $builder;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getBuilder(): Builder
|
||||
{
|
||||
return $this->builder;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function execute()
|
||||
{
|
||||
return $this->shell->run($this->builder);
|
||||
$builder = $this->getBuilder()->setBackupFolder($this->backupFolder)->builder();
|
||||
return $this->shell->run($builder);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue