|
From: Hiroshi H. <nul...@cl...> - 2014-10-30 02:48:11
|
Hiroshi Hatake 2014-10-29 22:49:11 +0900 (Wed, 29 Oct 2014) New Revision: a4a3c62ee85fffed98c094574f425ffa7a0c8c97 https://github.com/clear-code/cutter/commit/a4a3c62ee85fffed98c094574f425ffa7a0c8c97 Merged 4827a6b: Merge pull request #17 from cosmo0920/support-terminal-notifier Message: support terminal-notifier notification Modified files: module/ui/cut-console-ui-factory.c module/ui/cut-console-ui.c Modified: module/ui/cut-console-ui-factory.c (+5 -0) =================================================================== --- module/ui/cut-console-ui-factory.c 2014-10-29 18:52:25 +0900 (770a34f) +++ module/ui/cut-console-ui-factory.c 2014-10-29 22:49:11 +0900 (8abedb0) @@ -329,6 +329,7 @@ search_notify_command (void) { const gchar *notify_send = "notify-send"; const gchar *growlnotify = "growlnotify"; + const gchar *terminal_notifier = "terminal-notifier"; if (program_exist(notify_send) && g_getenv("DBUS_SESSION_BUS_ADDRESS")) { @@ -339,6 +340,10 @@ search_notify_command (void) return growlnotify; } + if (program_exist(terminal_notifier)) { + return terminal_notifier; + } + return NULL; } Modified: module/ui/cut-console-ui.c (+31 -0) =================================================================== --- module/ui/cut-console-ui.c 2014-10-29 18:52:25 +0900 (4248dba) +++ module/ui/cut-console-ui.c 2014-10-29 22:49:11 +0900 (cd775f7) @@ -1229,6 +1229,35 @@ notify_by_notify_send (CutConsoleUI *console, CutRunContext *run_context, } static void +notify_by_terminal_notifier (CutConsoleUI *console, CutRunContext *run_context, + gboolean success) +{ + GPtrArray *args; + CutTestResultStatus status; + gchar *icon_path; + + status = cut_run_context_get_status(run_context); + icon_path = search_icon_path(status, success); + + args = g_ptr_array_new(); + g_ptr_array_add(args, g_strdup(console->notify_command)); + g_ptr_array_add(args, g_strdup("-title")); + g_ptr_array_add(args, format_notify_message(run_context)); + g_ptr_array_add(args, g_strdup("-message")); + g_ptr_array_add(args, format_summary(run_context)); + if (icon_path) { + g_ptr_array_add(args, g_strdup("-appIcon")); + g_ptr_array_add(args, icon_path); + } + g_ptr_array_add(args, NULL); + + run_notify_command(console, (gchar **)args->pdata); + + g_ptr_array_foreach(args, (GFunc)g_free, NULL); + g_ptr_array_free(args, TRUE); +} + +static void notify (CutConsoleUI *console, CutRunContext *run_context, gboolean success) { if (!console->notify_command) @@ -1238,6 +1267,8 @@ notify (CutConsoleUI *console, CutRunContext *run_context, gboolean success) notify_by_notify_send(console, run_context, success); } else if (strcmp(console->notify_command, "growlnotify") == 0) { notify_by_growlnotify(console, run_context, success); + } else if (strcmp(console->notify_command, "terminal-notifier") == 0) { + notify_by_terminal_notifier(console, run_context, success); } } |