投稿

4月, 2020の投稿を表示しています

KotlinでPythonのargparseみたいなのを作ってみた

コマンドライン引数パーサーはいろんな言語に実装されています。自分が初めてまともに触った引数パーサーがPythonに標準でついてくるargparseでした。 argparseは標準ライブラリの一つではありますが、かなり実用的な引数パーサーとして使用できます。helpやusageも表示してくれて超便利です。(Pythonは標準ライブラリonly縛りでもある程度戦えるからすごい!) 自分はこれまでこのargparseがよく使う言語にあると良いなーと考え、とりあえず C++に実装 しました。 今回はその第二弾(?)と言うことでKotlinに実装しました。 リポジトリは GitHub にあります。 ライセンスはApache License 2.0です。 使い方  使い方はできるだけオリジナルのargparseに合わせました。 import net.sileader.argparse.ArgumentParser import kotlin.system.exitProcess fun main(cmd: Array<string>) { val parser = ArgumentParser("program", epilogue = "test program") parser.addArgument("-v", "--version", action = "store_true", help = "show version") val sub = parser.addSubParser() val push = sub.addParser("push", "push") push.addArgument("-d", "--data", action = "store", help = "data") val pull = sub.addParser("pull", "pull") pull.addAr