日付リストを簡単に表示するCLIツールを作った
dast
というCLIツールを作りました。
以下でinstallできます。Macでのみ動作確認しています。
homebrew
$ brew tap at-grandpa/homebrew-dast.cr $ brew install dast.cr
git clone
$ brew update $ brew install crystal-lang $ git clone https://github.com/at-grandpa/dast.cr.git $ cd dast.cr $ make install
業務中だったり日頃の開発だったりで、日付のリストを用意したい時がまれによくあります。そんなとき、直近の1週間であれば、dast
と打つだけで生成できます。
$ dast '2018-03-15','2018-03-16','2018-03-17','2018-03-18','2018-03-19','2018-03-20','2018-03-21'
この程度のコマンドであれば、rubyのワンライナーだったり、シェルスクリプトなりでサクッと作ってしまうのが良さそうです。しかし、ちょうど最近 Crystal の CLI ビルダーライブラリをアップデートした ので、良い機会だしドッグフーディングしようと思いました。結果、自分が使いやすいように作ったライブラリはやっぱり使いやかったですし、ライブラリのバグも発見できました。加えて、日頃の自分の作業も短縮できたので良かったと思います。
dast
はその他、次のような機能も備えています。
日付を指定すれば、現時刻からその日付までの間でリストを出力します。
$ dast 2018-03-17 '2018-03-17','2018-03-18','2018-03-19','2018-03-20','2018-03-21'
日付の差分の指定もできます。マイナスは ~
で指定します。以下は、3日前から本日までの日付を表示します。
$ dast ~3day '2018-03-18','2018-03-19','2018-03-20','2018-03-21'
日付を2つ与えれば、その日付間でのリストを表示します。
$ dast 2018-03-25 2018-03-27 '2018-03-25','2018-03-26','2018-03-27'
与えた日付からの差分も指定できます。
$ dast 2018-03-27 ~3day '2018-03-24','2018-03-25','2018-03-26','2018-03-27'
リストのインターバル、フォーマット、デリミタ、クォートも指定できます。以下は
2018-03-21 12:00:00
から1時間の範囲内- 20分ごとにリストを表示
- 出力フォーマットは
%Y-%m-%d %H:%M:%S
- デリミタは
|
- クォートは
"
となります。
$ dast '2018-03-21 12:00:00' 1h --interval=20min --format='%Y-%m-%d %H:%M:%S' --delimiter=' | ' --quote='"' "2018-03-21 12:00:00" | "2018-03-21 12:20:00" | "2018-03-21 12:40:00" | "2018-03-21 13:00:00"
日付と曜日を出したいなら、フォーマットを変更すればokです。フォーマットは ここ に準じます。
$ dast -f "%F (%a)" '2018-03-15 (Thu)','2018-03-16 (Fri)','2018-03-17 (Sat)','2018-03-18 (Sun)','2018-03-19 (Mon)','2018-03-20 (Tue)','2018-03-21 (Wed)'
また、作業中は日付リストをクリップボードに保存したい時が多いです。Macの場合はパイプで pbcopy
に繋ぐだけでクリップボードに保存できます。すぐにペーストできます。
$ dast -f "%F (%a)" | pbcopy
使ってみたい方は使ってみてください。