diff --git a/app/Commands/BackupCommand.php b/app/Commands/BackupCommand.php new file mode 100644 index 0000000..e29e825 --- /dev/null +++ b/app/Commands/BackupCommand.php @@ -0,0 +1,64 @@ +argument('containers'); + $this->line("### Backup is starting... ###"); + $this->call("backup:container", [ 'containers' => $containers]); + + if ($this->option('data')) { + $this->call("backup:data"); + } + + if ($this->option('mysql')) { + $this->call("backup:mysql", [ + '--container' => env('MYSQL_CONTAINER_NAME'), + '--user' => env('MYSQL_USER'), + '--password' => env('MYSQL_PASSWORD'), + ]); + } + $this->line("|-> The backup and upload process is finished."); + return; + } + + /** + * Define the command's schedule. + * + * @param \Illuminate\Console\Scheduling\Schedule $schedule + * @return void + */ + public function schedule(Schedule $schedule): void + { + // $schedule->command(static::class)->everyMinute(); + } +} diff --git a/app/Commands/ContainerBackupCommand.php b/app/Commands/ContainerBackupCommand.php index 927a5ff..af6323f 100644 --- a/app/Commands/ContainerBackupCommand.php +++ b/app/Commands/ContainerBackupCommand.php @@ -15,7 +15,7 @@ class ContainerBackupCommand extends Command * * @var string */ - protected $signature = 'backup:container {containers*} {--backupFolder=}'; + protected $signature = 'backup:container {containers*}'; /** * The description of the command. @@ -32,13 +32,12 @@ class ContainerBackupCommand extends Command */ public function handle() { - $backupFolder = $this->option('backupFolder'); $containers = $this->argument('containers'); $bm = new BackupManager(); foreach ($containers as $container) { $this->line("|-> Backing up {$container}..."); $builder = new ContainerBuilder(); - $builder->setBackupFolder($backupFolder)->setContainerName($container); + $builder->setBackupFolder(env('BACKUP_FOLDER'))->setContainerName($container); $bm->setBuilder($builder)->execute(); if ($bm->getShell()->getReturnValue() == 0) { $this->line(" |-> {$container} successfully backed up."); diff --git a/app/Commands/DataBackupCommand.php b/app/Commands/DataBackupCommand.php index e3976e4..1df1990 100644 --- a/app/Commands/DataBackupCommand.php +++ b/app/Commands/DataBackupCommand.php @@ -15,7 +15,7 @@ class DataBackupCommand extends Command * * @var string */ - protected $signature = 'backup:data {--dataFolder=} {--backupFolder=} {--clean}'; + protected $signature = 'backup:data'; /** * The description of the command. @@ -32,16 +32,12 @@ class DataBackupCommand extends Command */ public function handle() { - $backupFolder = $this->option('backupFolder'); - $dataFolder = $this->option('dataFolder'); - $clean = $this->option('clean'); $this->line("|-> Backing up data folder..."); $bm = new BackupManager(); $builder = new DataBuilder(); - $builder->setDataFolder($dataFolder) - ->setBackupFolder($backupFolder) - ->setClean($clean); + $builder->setDataFolder(env('DATA_FOLDER')) + ->setBackupFolder(env('BACKUP_FOLDER')); $bm->setBuilder($builder)->execute(); if ($bm->getShell()->getReturnValue() == 0) { diff --git a/app/Commands/MysqlBackupCommand.php b/app/Commands/MysqlBackupCommand.php index 8393e4d..17bada1 100644 --- a/app/Commands/MysqlBackupCommand.php +++ b/app/Commands/MysqlBackupCommand.php @@ -15,7 +15,7 @@ class MysqlBackupCommand extends Command * * @var string */ - protected $signature = 'backup:mysql {--container=} {--user=} {--password=} {--backupFolder=}'; + protected $signature = 'backup:mysql {--container=} {--user=} {--password=}'; /** * The description of the command. @@ -35,7 +35,6 @@ class MysqlBackupCommand extends Command $container = $this->option('container'); $user = $this->option('user'); $password = $this->option('password'); - $backupFolder = $this->option('backupFolder'); $bm = new BackupManager(); $this->line("|-> Backing up mysql databases..."); @@ -45,8 +44,9 @@ class MysqlBackupCommand extends Command $builder = new DatabaseBuilder(); $builder->setCredential($credentials); - $builder->setBackupFolder($backupFolder)->setContainerName($container); - $output = $bm->setBuilder($builder)->execute(); + $builder->setBackupFolder(env('BACKUP_FOLDER')) + ->setContainerName($container); + $bm->setBuilder($builder)->execute(); if ($bm->getShell()->getReturnValue() == 0) { $this->line(" |-> Mysql databases successfully backed up."); } else {