delete backup folder if empty
This commit is contained in:
@@ -59,7 +59,7 @@ class BackupEdit extends Component
|
||||
|
||||
try {
|
||||
if ($this->delete_associated_backups) {
|
||||
$this->deleteAllBackups();
|
||||
$this->deleteAssociatedBackups();
|
||||
}
|
||||
|
||||
$this->backup->delete();
|
||||
@@ -119,18 +119,45 @@ class BackupEdit extends Component
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteAllBackups()
|
||||
public function deleteAssociatedBackups()
|
||||
{
|
||||
$executions = $this->backup->executions;
|
||||
$backupFolder = null;
|
||||
|
||||
foreach ($executions as $execution) {
|
||||
if ($this->backup->database->getMorphClass() === 'App\Models\ServiceDatabase') {
|
||||
delete_backup_locally($execution->filename, $this->backup->database->service->destination->server);
|
||||
$server = $this->backup->database->service->destination->server;
|
||||
} else {
|
||||
delete_backup_locally($execution->filename, $this->backup->database->destination->server);
|
||||
$server = $this->backup->database->destination->server;
|
||||
}
|
||||
|
||||
if (!$backupFolder) {
|
||||
$backupFolder = dirname($execution->filename);
|
||||
}
|
||||
|
||||
delete_backup_locally($execution->filename, $server);
|
||||
$execution->delete();
|
||||
}
|
||||
|
||||
if ($backupFolder) {
|
||||
$this->deleteEmptyBackupFolder($backupFolder, $server);
|
||||
}
|
||||
}
|
||||
|
||||
private function deleteEmptyBackupFolder($folderPath, $server)
|
||||
{
|
||||
$checkEmpty = instant_remote_process(["[ -z \"$(ls -A '$folderPath')\" ] && echo 'empty' || echo 'not empty'"], $server);
|
||||
|
||||
if (trim($checkEmpty) === 'empty') {
|
||||
instant_remote_process(["rmdir '$folderPath'"], $server);
|
||||
|
||||
$parentFolder = dirname($folderPath);
|
||||
$checkParentEmpty = instant_remote_process(["[ -z \"$(ls -A '$parentFolder')\" ] && echo 'empty' || echo 'not empty'"], $server);
|
||||
|
||||
if (trim($checkParentEmpty) === 'empty') {
|
||||
instant_remote_process(["rmdir '$parentFolder'"], $server);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function render()
|
||||
|
||||
Reference in New Issue
Block a user