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编程语言

MIT 许可证

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