bentools / crontab-bundle
Generates a crontab based on the app directory.
Installs: 2 564
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 4
Forks: 1
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=7.1
- symfony/console: ^4.0|^5.0
- symfony/framework-bundle: ^4.0|^5.0
- symfony/process: ^4.0|^5.0
- symfony/yaml: ^4.0|^5.0
Requires (Dev)
- pestphp/pest: ^0.3.14
- symfony/http-kernel: ^4.0|^5.0
- symfony/var-dumper: ^4.0|^5.0
- thecodingmachine/safe: ^1.3
This package is auto-updated.
Last update: 2024-11-07 08:04:05 UTC
README
An easy way to generate a crontab based on the application path.
Unlike similar Symfony bundles, this one does not provide a worker, it actually replaces the user's crontab.
⚠️ Do not use this if your user's crontab may by altered by another process!
Important
This repository is no longer maintained and may be removed in a near future. You may consider creating a fork if you still require it.
Installation
This bundle is compatible with Symfony 4/5+. Use 0.1.*
tag for earlier versions compatibility.
composer require bentools/crontab-bundle 0.2.*
With Symfony Flex, you're already done!
Usage
Create a sample crontab in config/crontab.dist
:
# config/crontab.dist 0 0 * * * php {%kernel.project_dir%}/bin/console your:favorite:command
As you can see, {%kernel.project_dir%}
is a container parameter.
It will be replaced at runtime with its current value. You can use any container parameter wrapped with curly braces.
Preview
This will give you a preview of your crontab:
php bin/console crontab:update --dry-run --dump
Apply
To apply your crontab, run this:
php bin/console crontab:update
Now if you execute crontab -l
in your shell you should see something like this:
0 0 * * * php /home/me/my-project/bin/console your:favorite:command
FAQ
Can I use any container parameter?
Yes.
I don't want the dist file to be config/crontab.dist
. Can I change that?
Sure: create a config/packages/bentools_crontab.yaml
and change the dist_file
parameter:
bentools_crontab: dist_file: '%env(CRONTAB_SAMPLE_FILE)%' # That's an example.
What are the command options?
--no-interaction # Skip confirmation question --dry-run # Do not update crontab for real --output-file=/path/to/generated_crontab # Change output file (which is a tmp file by default) --dump # Show generated crontab content
I already have a crontab for the user running my app. Will it replace it?
Yes. Use this bundle only if you consider it to be the only crontab entry point.
Tests
./vendor/bin/pest
License
MIT