Skip to content

ayrat555/cronenberg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cronenberg Build Status

simple cron command entry parser

cronenberg provides two core components

  • TimeItem: An enum that represents cron command time or date field
  • CronItem: A struct that represents cron command entry, for example, * * 5-7 1,2,5 8 sudo rm -rf /

Installation

cronenberg is available on crates.io and can be included in your Cargo enabled project like this:

[dependencies]
cronenberg = "0.3.0"

Then include it in your code like this:

extern crate cronenberg;

Example

extern crate cronenberg;

use cronenberg::CronItem;
use cronenberg::TimeItem::*;
use std::str::FromStr;
use std::string::ToString;

let s = "* * 5-7 1,2,5 8 ls -la";
assert_eq!(
    CronItem::from_str(s).unwrap(),
    CronItem {
        minute: AllValues,
        hour: AllValues,
        day_of_month: Interval((5, 7)),
        month: MultipleValues(vec![1, 2, 5]),
        day_of_week: SingleValue(8),
        command: String::from("ls -la"),
    }
);

let cron_item = CronItem {
    minute: MultipleValues(vec![1, 10]),
    hour: Interval((1, 4)),
    day_of_month: Interval((1, 11)),
    month: MultipleValues(vec![1, 2, 5]),
    day_of_week: AllValues,
    command: String::from("pwd"),
};
assert_eq!("1,10 1-4 1-11 1,2,5 * pwd", cron_item.to_string());

Contributing

  1. Fork it!
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Author

Ayrat Badykov (@ayrat555)

License

cronenberg is released under the MIT License.

Releases

No releases published

Packages

No packages published

Languages