簡単サブコマンド

YAPC::Asia 2010 前夜祭 (2010/10/14)
            @xaicron
自己紹介

名前
   Yuji Shimada
   嶋田 裕二
職場
   DeNA
Twitter
   @xaicron
Blog
   http://blog.livedoor.jp/xaicron/
サブコマンドって知ってますか?
git add yapc-asia.2010

  これね
サブコマンドを処理するモジュール


 App::Cmd
 App::CLI
 CLI::Dispatch
App::Cmd

 たぶんデファクト
 1コマンド1モジュール
 結構柔軟
 usage の自動生成
App::CLI

 1コマンド1モジュール
 ドキュメントがなくてよくわからん
 usage の自動生成はない?
CLI::Dispatch

 1コマンド1モジュール
 usage の自動生成
 Author: charsbar
モジュール化しないとだめぽ...
単一のスクリプトで書きたい!!
というわけで
書きました
ボクの考えた
最強のサブコマンド処理モジュール
Getopt::Compact::WithCmd

単一のスクリプトで定義
全体のオプションとは別に、サブコマンド
ごとのオプション
usage の執拗な自動生成
サブコマンドのサブコマンドのサブコマ
ンドのサブコマンドの...
require...
これをつかうと
$ foo.pl -v bar --output baz.txt
         サブコマンド
とか
$ foo.pl bar baz hoge fuga args




                            サブコマンド
とかできます!
helpコマンドや、--help オプション
  も自動生成されるので便利!
Getopt::Long の spec とか
  (たぶん)全部使える
Demo
でもコマンドのDispatchは
しないので自分でやってね
おしまい
Upcoming SlideShare
Loading in...5
×

YAPC::Asia 2010 / 前夜祭

1,858

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,858
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

YAPC::Asia 2010 / 前夜祭

  1. 1. 簡単サブコマンド YAPC::Asia 2010 前夜祭 (2010/10/14) @xaicron
  2. 2. 自己紹介 名前 Yuji Shimada 嶋田 裕二 職場 DeNA Twitter @xaicron Blog http://blog.livedoor.jp/xaicron/
  3. 3. サブコマンドって知ってますか?
  4. 4. git add yapc-asia.2010 これね
  5. 5. サブコマンドを処理するモジュール App::Cmd App::CLI CLI::Dispatch
  6. 6. App::Cmd たぶんデファクト 1コマンド1モジュール 結構柔軟 usage の自動生成
  7. 7. App::CLI 1コマンド1モジュール ドキュメントがなくてよくわからん usage の自動生成はない?
  8. 8. CLI::Dispatch 1コマンド1モジュール usage の自動生成 Author: charsbar
  9. 9. モジュール化しないとだめぽ...
  10. 10. 単一のスクリプトで書きたい!!
  11. 11. というわけで
  12. 12. 書きました
  13. 13. ボクの考えた 最強のサブコマンド処理モジュール
  14. 14. Getopt::Compact::WithCmd 単一のスクリプトで定義 全体のオプションとは別に、サブコマンド ごとのオプション usage の執拗な自動生成 サブコマンドのサブコマンドのサブコマ ンドのサブコマンドの... required とか default とか Getopt::Compact とほぼ同じ使い勝手
  15. 15. これをつかうと
  16. 16. $ foo.pl -v bar --output baz.txt サブコマンド
  17. 17. とか
  18. 18. $ foo.pl bar baz hoge fuga args サブコマンド
  19. 19. とかできます!
  20. 20. helpコマンドや、--help オプション も自動生成されるので便利!
  21. 21. Getopt::Long の spec とか (たぶん)全部使える
  22. 22. Demo
  23. 23. でもコマンドのDispatchは しないので自分でやってね
  24. 24. おしまい
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×