marshmallow / laravel-folder-cleaner
Clean folders using a command. This can be helpful if you have temporary files in your projects that need to be cleaned for saving storage.
Requires
- php: ^8.1
- illuminate/contracts: ^9.0|^10.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-10-29 19:49:30 UTC
README
Clean folders using a command. This can be helpful if you have temporary files in your projects that need to be cleaned for saving storage.
Installation
You can install the package via composer:
composer require marshmallow/laravel-folder-cleaner
You can install the package by running the command below. This installation command will publish a config file where you can let the package know what you wish to delete.
php artisan folder-cleaner:install
The following config file will now be published.
return [ /** * You can specify the folders that should be cleaned in * this config array. We will search for these folders * in the root directory of you project. */ 'folders' => [ // '/storage/logs', // '/storage' => [ // 'older_than' => '3 months', // 'except' => [ // 'important.log', // ], // ], // '/storage/app' => [ // 'older_than' => '1 day', // 'match' => '/^export_\d+\.xlsx$/', // ], ], ];
Usage
php artisan folder-cleaner:clean {--dry-run} {--quiet}
Options
In the config file you can specify a couple of settings to let the package know what should be cleaned.
If you just provide a string for a folder, all the files in this folder will be deleted when the command is run. Please not, this doesn't work recursively, folders will not be deleted.
return [ 'folders' => [ // '/storage/logs', ] ];
You can also specify some settings as an array after the path of the folder. The example below will delete all files that are older then 3 months, match a patern of export_{number}.xlsx except for export_1.xlsx.
return [ 'folders' => [ '/storage' => [ 'older_than' => '3 months', 'match' => '/^export_\d+\.xlsx$/', 'except' => [ 'export_1.xlsx', ], ], ] ];
If you have a directory which holds temporary directories that can deleted with all its content, you can use the delete_folders
options. In the example below, all files in the download directory AND all sub directories in the download directory will be deleted once they are 7 days old.
return [ 'folders' => [ '/storage/app/public/download' => [ 'delete_folders' => true, 'older_than' => '7 days', ], ] ];
If you need more options, please let us know. This was enough for our use case at the moment of creating this package.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.