19 个版本
0.2.29 | 2024 年 4 月 6 日 |
---|---|
0.2.28 | 2024 年 4 月 6 日 |
0.2.25 | 2024 年 3 月 20 日 |
0.1.20 | 2024 年 3 月 16 日 |
0.1.0 | 2024 年 1 月 15 日 |
#247 在 编程语言 中
2MB
2.5K SLoC
包含 (DOS 可执行文件, 140KB) workspace/_.exe
🌈 MOTO: 一个通用的自动化与脚本系统
概述
:moto 是一种通用的脚本语言和自动化工具,旨在简化跨各种环境和语言的任务自动化。它提供了一种统一且直观的语法来定义任务,利用多个运行时,并编排复杂的流程。
主要特性
- 多语言支持: :moto 可以无缝集成多种编程语言,包括 Dart、Rust、Python、JavaScript 等。你可以在单个 :moto 脚本中用你喜欢的语言编写代码。
- 自定义运行时: 通过为额外的语言或执行环境定义自定义运行时来扩展 :moto 的功能。指定每个语言的必要设置和执行步骤。
- 任务定义和执行: 定义可重用的任务,封装特定的操作或操作。任务可以与不同的运行时关联,并在 :moto 脚本中无缝执行。
- Shell 执行: 使用内置的
:shell
运行时执行 shell 命令和脚本。与底层操作系统集成,用于文件操作、进程管理和系统操作。 - 代码生成: 使用字符串插值和文件输出重定向动态生成代码文件。根据脚本逻辑创建不同语言的源文件。
- 文本块: 定义可重用的文本块,可以在任务或其他块中引用和插值。存储常见的代码片段、模板或静态内容以方便重用。
安装
要安装 :moto,请使用以下命令
cargo install moto
用法
以下是 :moto 语言语法的简要概述
变量
let name = "John"
let age = 30
let isMarried = false
let hobbies = ["reading", "coding", "gaming"]
任务
task hello {
echo "Hello, $ENV{USER}!"
}:ps
运行时
task greetings_from_dart {
void main() {
print("Hello from Dart");
}
}:dart
task greet_from_rust {
fn main() {
println!("Hello from Rust");
}
}:rust
自定义运行时
runtime csharp {
let x = 5;
task run {
$something = @'[:block]'@
$something | Out-File -FilePath "./_.cs" -Encoding UTF8
csc "./_.cs"
./_.exe
}:shell
}:moto
块
block story {
Once upon a time, there was a small village.
}:text
task read_story {
echo [:story]
}:ps
贡献
欢迎为 :moto 贡献!如果你遇到任何问题,有改进建议,或想贡献新功能,请在 GitHub 仓库 上打开一个 issue 或提交一个 pull request。
请随意探索 :moto 在自动化和脚本任务中的强大功能和多功能性。快乐自动化!🚀
依赖项
~14–25MB
~361K SLoC