3个版本 (重大更改)

0.3.0 2024年2月19日
0.2.0 2024年2月18日
0.1.0 2024年2月17日

#690 in 开发工具

Download history 18/week @ 2024-03-27 36/week @ 2024-04-03 1/week @ 2024-05-22

每月96次下载

ISCLGPL-3.0-only

79KB
2K SLoC

PureScript 1.5K SLoC // 0.0% comments Rust 243 SLoC // 0.1% comments Haskell 138 SLoC // 0.0% comments

OClis

基于简单、直观的规格文件的CLI(命令行界面)应用程序构建器。

动机

构建CLI应用程序是一项重复性的任务。相同的代码反复编写。但别担心,OClis可以帮助您解决这个问题!

使用方法

  1. cargoinstall oclis
  2. oclis init - 创建一个oclis.ncl规格文件。
  3. 根据您的喜好调整规格文件。
    (查看示例目录以获取灵感。)
  4. 运行oclis build以生成CLI解析代码
    (它会自动检测主仓库的语言,但目前只支持PureScript。)
  5. 将缺少的依赖项添加到您的项目中。
    (例如,对于PureScript,请查看spago.yaml文件。)
  6. 定义您命令的处理函数。
    (查看Transity的主函数以获取示例。)
  7. 将生成的代码提交到仓库。

工作原理

生成的CLI应用程序的处理流程

Processing Pipeline

不支持的CLI设计

其他CLI框架的一些功能是故意不支持的

  • 多次指定标志。 (例如,tar -v -v -v) 这很容易出错,因为很容易意外添加多次。请使用数字详细程度标志代替 (例如,tar -v=3) 或定义自己的计数系统 (例如,tar -v=xxx)
  • 在参数后指定标志/选项。(例如 pandoc in.md --output=out.pdf)禁止这样做有助于防止意外提供被视为标志/选项的参数。建议的替代方案
    • 子命令:pandoc convert in.md out.pdf
    • 选项优先:pandoc --output=out.pdf in.md
    • 额外选项:pandoc --input=in.md --output=out.pdf

其他CLI构建工具

  • CLI定义语言 - 用于定义C++程序命令行界面的领域特定语言(DSL)。
  • Decli - 声明式CLI工具构建器。
  • docopt - 命令行界面描述语言。
  • make-cli - Node.js的声明式CLI框架。

手册CLI框架

查看仓库 awesome-cli-frameworks 以获得全面概述。

规范

从CLI生成GUI

  • Claui - 使用 clapegui 的GUI生成器。
  • Gooey - 将CLI程序转换为完整的GUI应用程序。
  • Klask - 从 clap 应用程序自动创建GUI应用程序。

从简单代码生成GUI

  • Sparkle - 从类型签名中推断用户界面。
  • Streamlit - 将数据脚本转换为可共享的Web应用程序。

依赖项

~28–40MB
~629K SLoC