mylk/chronis

A crontab generator using natural language expressions

0.8.1 2019-06-18 20:45 UTC

This package is not auto-updated.

Last update: 2024-11-10 06:23:04 UTC


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

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.