コマンドを実行する前に、Progress タイプ (Development.Shake.Progress 内) から進行状況情報を取得して出力する方法を見つけようとしています。可能な望ましい出力は次のようになります。
[1/9] Compiling src/Window/Window.cpp
[2/9] Compiling src/Window/GlfwError.cpp
[3/9] Compiling src/Window/GlfwContext.cpp
[4/9] Compiling src/Util/MemTrack.cpp
...
今のところ、合計 (最初はソース ファイルの合計に設定) と、各ビルド コマンドを実行する前に増加するカウントを保持する IORef を使用してこれをシミュレートしていますが、これはハックなソリューションのように思えます。
その上、このソリューションはクリーン ビルドでは正しく動作するように見えますが、表示される合計がすべてのソース ファイルの合計であるため、部分ビルドでは正しく動作しません。
Progress データ型にアクセスすると、countSkipped、countBuild、および countTodo メンバーを使用してこの割合を正しく計算できます (Progress.hs:53 を参照)。
どんな助けでも大歓迎です。