{% github nsomar Guaka 7d6135f width = 30% %}

Guaka介绍

通过 Guaka Framework 来实现 CLI(command-line interface)。 该框架可以快速实现如下的效果:

1
git checkout -v "url"

git 就是一个 CLIcheckout是这个CLI的子命令,并接受一个 String 作为他的参数。

对应上述的命令可以为分为:

  • git 主命令
  • checkout 子命令
  • -v/–v 命令所接收的 flag
1
2
3
4
└── git
    ├── checkout -v
    └── push -f
    └── ...

在 Guaka 中代码表现基本就是这样子的:

1
2
3
4
5
let flag = Flag(longName: "v", value: false, description: "Show verbose")
let command = Command(usage: "git", flags: [flag]) { flags, args in
    let showVerbose = flags.getBool(name: "v")
    // args the positional arguments passed to the command
}

上面就是 git 的 -v 指令,是否打印过程.

Guaka快速上手

  1. 安装
1
> brew install oarrabi/tap/guaka
  1. 新建工程 假设我们要建立一个 papa 的CLI指令
1
2
cd 到需要建立工程的目录
guaka create papa

会生成如下路径 ├── Package.swift └── Sources ├── main.swift ├── root.swift └── setup.swift

  1. 增加指令 给 papa 增加个子命令叫做 check
1
guaka add check

增加 flag 增加 flag 就要去 Source 下面对应的 Swift 文件中修改。

  1. 编译执行 Swift build
1
swift build

// 会编译生成可执行文件 // .build/debug/papa –help

  1. 运行papa可执行文件
1
.build/debug/papa check

增加逻辑就在对应的 Swift 文件中增加.