2 个不稳定版本

使用旧的 Rust 2015

0.3.0 2018年3月10日
0.2.0 2018年2月26日
0.1.0 2018年2月26日

#41 in #entry

MIT 许可证

12KB
281 代码行(不包括注释)

cronenberg Build Status

简单的 cron 命令输入解析器

cronenberg 提供两个核心组件

  • TimeItem: 一个枚举,表示 cron 命令的时间或日期字段
  • CronItem: 一个结构体,表示 cron 命令条目,例如,* * 5-7 1,2,5 8 sudo rm -rf /

安装

cronenberg 可在 crates.io 上找到,并且可以像这样包含到你的 Cargo 项目中

[dependencies]
cronenberg = "0.2.0"

然后在你的代码中这样包含它

extern crate cronenberg;

示例

extern crate cronenberg;

use cronenberg::cron_item::CronItem;
use cronenberg::cron_item::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());

贡献

  1. 创建分支!
  2. 创建你的功能分支(git checkout -b my-new-feature
  3. 提交你的更改(git commit -am 'Add some feature'
  4. 推送到分支(git push origin my-new-feature
  5. 创建新的 Pull Request

作者

Ayrat Badykov (@ayrat555)

许可证

cronenberg 在 MIT 许可证下发布。

依赖

~1MB
~18K SLoC