mylk / chronis
A crontab generator using natural language expressions
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >=7.0.0
- bentools/natural-cron-expression: ^1.0
- symfony/config: ^4.3
- symfony/console: ^4.3
- symfony/dependency-injection: ^4.3
- symfony/yaml: ^4.3
Requires (Dev)
- phpmd/phpmd: ^2.6
- phpunit/phpunit: 8.2.*
- squizlabs/php_codesniffer: ^3.4
README
As cron
expressions are not easy to understand and write, Chronis
will help you define
cron jobs using natural language and will generate crontab files for you.
This will also allow you to verison control
your cron job definitions in a structured
file (YAML) and generate crontabs during your deployment
process.
Usage
Prerequisites
PHP 7 is required for Chronis
to run.
Installing
To include Chronis
in your PHP project:
composer require mylk/chronis
You can also install Chronis
as a global command and not as a project's dependency:
composer global require mylk/chronis
Run
To execute Chronis
and get some help:
vendor/bin/chronis list
To execute Chronis
when installed as a global command, first make sure that
$HOME/.config/composer/vendor/bin/
is in your system's $PATH
. Then you can
execute Chronis
from anywhere:
chronis list
Then, you will need to have a yaml
file to define your cron jobs. You can begin with
this as an example.
To dump the crontab:
vendor/bin/chronis dump --config=YOUR_YAML_FILE_PATH
To export the crontab:
vendor/bin/chronis export --config=YOUR_YAML_FILE_PATH --output=my_crontab
The --output
argument is not necessary. If not given, the crontab will be exported to a file
named crontab
in the current directory.
Contributing
Chronis
is open source and of course you can contribute. Just fork the project, have fun
and then create a pull request.
A Makefile
has been created to group some tasks needed for development. Find those tasks below.
Running the tests
make tests
Syntax checks
make check-syntax
Coding style checks
The coding style that is followed is PSR-2.
make check-style
Quality checks
make check-quality
Built With
- symfony/console - The library used for the command line interface
- bpolaszek/natural-cron-expression - The library that converts the natural language to cron expressions
- symfony/yaml - The library used to read the YAML configuration of your cron jobs
- symfony/dependency-injection - The library that instantiates the sevices used in the project
Versioning
SemVer is used for versioning. For the versions available, see the tags.
Authors
See the list of contributors.
License
This project is licensed under the GPLv2 License - see the LICENSE file for details.