SwiftでCLIツールを書く時のArgument Parser(引数やサブコマンドをいい感じに解釈してくれるやつ)の選択肢を書き連ねておきます。これら以外の良い選択肢をご存知の方はぜひ教えてください 🙏
- Commandant
- Commander
- 個人的に信頼感のあるkylefプロダクト
- Commandantより直感的に、またより簡単に定義できるような気がします
- swift-package-manager
- なぜSwiftPMが?と思われるかもしれませんが、SwiftPM内部で使われている
ArgumentParser
というクラスが、Utility
というSwiftPMのプロダクトとして使えるようになっています- プロダクト定義: https://github.com/apple/swift-package-manager/blob/7502ddf498db4fdf47f732b4e8f37d7cd989884f/Package.swift#L43-L57
- SwiftPM用のタグ: https://github.com/apple/swift-package-manager/releases/tag/0.1.0
Package.swift
にhttps://github.com/apple/swift-package-manager.git
を依存として書き、ターゲットの依存性としてUtility
というプロダクトを指定すると使えます- 参考: https://developers.eure.jp/tech/swiftpm-utility-cli/
- なのでSwiftPMでCLIツールを開発する時にいいかもしれない
- なぜSwiftPMが?と思われるかもしれませんが、SwiftPM内部で使われている