Remove download directory after download complete to conserve disk space

This commit is contained in:
ilumos 2018-02-03 13:42:11 +00:00
parent 201effcee6
commit c44a3d5703

View file

@ -5,6 +5,7 @@ namespace Zeropingheroes\LancacheAutofill\Commands\Steam;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Database\Capsule\Manager as Capsule; use Illuminate\Database\Capsule\Manager as Capsule;
use Symfony\Component\Process\Exception\ProcessFailedException; use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\Process;
use Zeropingheroes\LancacheAutofill\Services\SteamCmd\SteamCmd; use Zeropingheroes\LancacheAutofill\Services\SteamCmd\SteamCmd;
class StartDownloading extends Command class StartDownloading extends Command
@ -47,10 +48,13 @@ class StartDownloading extends Command
$this->info('Starting download of '.$item->app_id.' for '.$item->platform.' from Steam account '.$account); $this->info('Starting download of '.$item->app_id.' for '.$item->platform.' from Steam account '.$account);
try { try {
$downloadPath = getenv('DOWNLOADS_DIRECTORY').'/'.$item->platform.'/'.$item->app_id;
$steamCmd = (new SteamCmd(getenv('STEAMCMD_PATH'))) $steamCmd = (new SteamCmd(getenv('STEAMCMD_PATH')))
->login($account) ->login($account)
->platform($item->platform) ->platform($item->platform)
->directory(getenv('DOWNLOADS_DIRECTORY').'/'.$item->platform.'/'.$item->app_id) ->directory($downloadPath)
->update($item->app_id) ->update($item->app_id)
->run(); ->run();
@ -66,6 +70,20 @@ class StartDownloading extends Command
$this->info('Successfully completed download of '.$item->app_id.' for '.$item->platform.' from Steam account '.$account); $this->info('Successfully completed download of '.$item->app_id.' for '.$item->platform.' from Steam account '.$account);
$this->updateQueueItemStatus($item->id, 'completed'); $this->updateQueueItemStatus($item->id, 'completed');
// Delete download directory
$this->info('Deleting '.$item->app_id.' from disk');
$remove = new Process('rm -rf '.$downloadPath);
$remove->run(function ($type, $buffer) {
if (Process::ERR === $type) {
$this->error(str_replace(["\r", "\n"], '', $buffer));
}
else {
$this->line(str_replace(["\r", "\n"], '', $buffer));
}
});
// As the download was successful, do not attempt to download using any other Steam accounts // As the download was successful, do not attempt to download using any other Steam accounts
break; break;