Subscribed unsubscribe Subscribe Subscribe

Cutterのテスト結果をgrowlnotify.exeで通知するには(win32限定)

MinGW

C/C++ユニットテストフレームワークであるところのCutterですが、
growlnotifyにパスが通っている状態でcutterコマンドを以下のように叩いても何も通知されません。

cutter --notify=yes test

Windows環境ではCutterのトップページで紹介されているようなGrowlによるテスト結果のレポート通知が機能しません。

なのでせっせとパッチを書くことにしました。

diff --git a/module/ui/cut-console-ui.c b/module/ui/cut-console-ui.c
index e8f983c..68a254a 100644
--- a/module/ui/cut-console-ui.c
+++ b/module/ui/cut-console-ui.c
@@ -1139,6 +1139,22 @@ notify_by_growlnotify (CutConsoleUI *console, CutRunContext *run_context,
 
     args = g_ptr_array_new();
     g_ptr_array_add(args, g_strdup(console->notify_command));
+#ifdef G_OS_WIN32
+    g_ptr_array_add(args,
+                    g_strdup_printf("/t:\"%s [%g%%] (%gs)\"",
+                                    status_to_label(status),
+                                    compute_pass_percentage(run_context),
+                                    cut_run_context_get_elapsed(run_context)));
+    if (success) {
+        g_ptr_array_add(args, g_strdup("/p:0"));
+    } else {
+        g_ptr_array_add(args, g_strdup("/p:2"));
+    }
+    if (icon_path) {
+        g_ptr_array_add(args, g_strdup_printf("/i:\"%s\"", icon_path));
+    }
+    g_ptr_array_add(args, g_strdup_printf("%s", format_summary(run_context)));
+#else
     g_ptr_array_add(args, g_strdup("--message"));
     g_ptr_array_add(args, format_summary(run_context));
     g_ptr_array_add(args, g_strdup("--priority"));
@@ -1156,6 +1172,7 @@ notify_by_growlnotify (CutConsoleUI *console, CutRunContext *run_context,
                                     status_to_label(status),
                                     compute_pass_percentage(run_context),
                                     cut_run_context_get_elapsed(run_context)));
+#endif
     g_ptr_array_add(args, NULL);
 
     run_notify_command(console, (gchar **)args->pdata);

上記パッチでこんな感じで通知されるようになりました。
たぶんやろうと思えばSnarlなんかも似たようにすればサポートできるはず。