コンソールでくるくるするやつ for .NET Core
Created at:
コンソールで時間がかかる処理をやっているときなどにくるくるするやつを.NET Core(.NET Standard 2.0)で表示するライブラリを作りました。node.jsのcli-spinnersとoraを参考にというか実質ポートみたいな感じです。これで.NET Coreでツールを作った時にもちょっとオサレにできるはず…!
使い方は簡単で Spinner.Start
もしくは Spinner.StartAsync
にアクションを渡すだけです。
await Spinner.StartAsync("Stage 1...", async spinner =>
{
await Task.Delay(1000 * 3);
spinner.Text = "Stage 2...";
await Task.Delay(1000 * 3);
spinner.Fail("Something went wrong!");
});
ちなみにくるくるするやつが記号や絵文字を使っているものが多い都合、WindowsではコマンドプロンプトのコードページがCP932のようになっていると残念なことになるのでコードページを見てASCII文字のアニメにフォールバックする仕組みが入っています(他のライブラリにはない)。
また ora と同様にCI環境のようなノンインタラクティブな時には発動しないようにして、結果のみが表示されるようになっています。
コマンドラインツールを作る際にはどうぞご利用ください。