はじめに
アドベントカレンダー4日目cowsay -f dmanとネタが被り、力弱く7日目ヤター! cowsayで使えるd-man.cowデキタヨー!! を投稿しました。D言語くんに何かを喋らせたいという欲求は万人に共通ということですね。
$ cowsay -f ./d-man.cow May D-man bless you.
______________________
< May D-man bless you. >
----------------------
\ _ _
\ (_) (_)
/______ \
\ (O(O \/
| | | |
| |_| |
/______/
< >
(_) (_)
gophersay
$ go get github.com/adamryman/gophersay
$ gophersay
------------------------
Concurrency is not parallelism
------------------------
\
\
\ ,_---~~~~~----._
_,,_,*^____ _____``*g*\"*,
/ __/ /' ^. / \ ^@q f
[ @f | @)) | | @)) l 0 _/
\`/ \~____ / __ \_____/ \
| _l__l_ I
} [______] I
] | | | |
] ~ ~ |
| |
| |
.
..
...
@simd_nyanは激怒した。必ず、かのクソネズミを滅せねばならぬと決意した。@simd_nyanにはGo言語がわからぬ。@simd_nyanは、日本のサラリーマンである。会議資料を書き、新橋で遊んで暮して来た。けれどもマスコットに対しては、人一倍に敏感であった。
d-man{say,think}
というわけで、d-man{say,think}コマンドを作りました。
1つのdubプロジェクトでd-man{say,think}、2つの実行ファイルを作成するために以下の方法を採用しました。
dub の configurations
"configurations"
以下に作成した"versions"
にソース内で認識させるversion
名を入れます。
詳しくはConfigurations節を参照して下さい。
{
"name": "d-mansay",
"configurations": [
{
"name": "say",
"targetName": "d-mansay",
"targetType": "executable",
"versions": ["say"]
},
{
"name": "think",
"targetName": "d-manthink",
"targetType": "executable",
"versions": ["think"]
},
]
}
以下でビルドします。
# say が適用される
$ dub build
Performing "debug" build using dmd for x86_64.
d-mansay ~master: building configuration "say"...
Linking...
# say が適用される
$ dub build --config=say
Performing "debug" build using dmd for x86_64.
d-mansay ~master: building configuration "say"...
Linking...
# think が適用される
$ dub build --config=think
Performing "debug" build using dmd for x86_64.
d-mansay ~master: building configuration "think"...
Linking...
おわりに
$ d-manthink --help
_________________________________________________________________________
( d-man{say,think} version 0.0.1, (c) 2016 @simd_nyan )
( Usage: d-man{say,think} [-bdgpstwy] [-h] [-n] [-W wrapcolumn] [message] )
-------------------------------------------------------------------------
o _ _
o (_) (_)
/______ \
\ (O(O \/
| | | |
| |_| |
/______/
< >
(_) (_)
$ d-mansay May D-man be with you.
________________________
< May D-man be with you. >
------------------------
\ _ _
\ (_) (_)
/______ \
\ (O(O \/
| | | |
| |_| |
/______/
< >
(_) (_)