LoginSignup
23

More than 5 years have passed since last update.

「◯日ぶり×回目」を出力するアプリを作ったよ

Last updated at Posted at 2018-12-15

この記事は、クソアプリ2 Advent Calendar 2018 の 14 日目の記事です。
どうもいつも元気な @pankona です。

nn という「◯日ぶり×回目」を出力するアプリを紹介します。
拙作です。Go で書いてます。

nn とは何か

  • 「n 日ぶり m 回目」を出力するコマンドラインツール。
    • 最初は「n 日ぶり n 回目」というつもりで作っていたので 「nn」という名前になっています。紛らわしくてごめんなさい。
  • ヘルプは以下。
$ nn --help
NAME:
   nn - show nn

USAGE:
   nn [options] [arguments...]

VERSION:
   0.1

OPTIONS:
   --id value                specify id of nn (default: "default")
   -f value, --format value  specify format of nn (default: "%d 日ぶり %d 回目")
   --help, -h                show help
   --version, -v             print the version

機能

  • -id で集計する単位に ID を指定します。「n 日ぶり m 回目」は ID 毎に集計されます。
$ nn -id myapp1
0 日ぶり 1 回目

$ nn -id myapp1
0 日ぶり 2 回目

$ nn -id myapp2
0 日ぶり 1 回目

$ nn -id myapp2
0 日ぶり 2 回目
  • -f, --format で出力形式をなんとなく指定できます。
$ nn -f "while in %d days, %d time"
while in 0 days, 4 time

使用例

  • SL コマンドを打ってしまったときに何日ぶり何度目かを表示する

みんな大好き sl コマンドです。ls 打ち間違って出てきちゃうあれです。悔しいですよね。のんびり通り過ぎていく電車。それを見送る我々。
しかしこの sl。何日ぶり何度目の ls 打ち間違いか知りたいと思いませんか。
私はこんなふうに sl コマンドを alias して nn と繋げるようにして、何日ぶり何回目の SL 通過かを表示するようにしていました。

# bashrc にこんなふうに書いておく

alias sl='sl-with-count'

function sl-with-count {
    sl
    nn --id sl
}
  • SL コマンドを打ってしまったときに何日ぶり何度めかを Slack にポストする

そもそも sl を打たないように (ls を打ち間違わないように) 気をつけるべきですよね。
それでも sl してしまうことがあります。嘆かわしい。私は sl を打ってしまったときの戒めをより強力なものにするため、sl を打ってしまったときにとある Slack チャンネルに「何日ぶり何回目の SL か」をポストするようにしています。関係各位、いつもすまない。

私は以下のような alias と function を bashrc に書いています。
- 下記の例では slackpost というのが登場していますが、これはパイプで渡された文字列を Slack に投稿するコマンドラインツール (拙作) です。これの紹介は割愛します。

alias sl='sl-with-slackpost'

function sl-with-slackpost {
    sl
    echo "@here SL が走りました (`nn --id sl`)" | slackpost
}

SL が走ると、以下の文言がポストされます。

@here SL が走りました (30 日ぶり 34 回目)

まとめ

「◯日ぶり×回目」を出力するアプリを紹介しました。いかがでしょうか。
ちょっとでも面白いと思っていただけたら本望です。よかったら使ってみてね!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23