dynamicdan/sn-filesync

osx-notifier crash

Closed this issue · 4 comments

Hey mate, FileSync regularly crashes when syncing a newly created record. I'm running OSX Yosemite. The following was outputted to the command window after syncing a Style Sheet record:

10:29:04 - info: Files left in queue: 0
execFile(/Users/joellignier/Desktop/filesync/node_modules/osx-notifier/osx/terminal-notifier-info.app/Contents/MacOS/terminal-notifier)
terminal-notifier (1.5.0) is a command-line tool to send OS X User Notifications.

Usage: terminal-notifier -[message|list|remove] [VALUE|ID|ID] [options]

Either of these is required:

   -message VALUE     The notification message.
   -remove ID         Removes a notification with the specified ‘group’ ID.
   -list ID           If the specified ‘group’ ID exists show when it was delivered,
                      or use ‘ALL’ as ID to see all notifications.
                      The output is a tab-separated list.

Optional:

   -title VALUE       The notification title. Defaults to ‘Terminal’.
   -subtitle VALUE    The notification subtitle.
   -group ID          A string which identifies the group the notifications belong to.
                      Old notifications with the same ID will be removed.
   -activate ID       The bundle identifier of the application to activate when the user clicks the notification.
   -open URL          The URL of a resource to open when the user clicks the notification.
   -execute COMMAND   A shell command to perform when the user clicks the notification.

When the user activates a notification, the results are logged to the system logs.
Use Console.app to view these logs.

/Users/joellignier/Desktop/filesync/node_modules/osx-notifier/index.js:41
throw err;
^
Error: Command failed:
at ChildProcess.exithandler (child_process.js:548:15)
at ChildProcess.EventEmitter.emit (events.js:99:17)
at maybeClose (child_process.js:646:16)
at Socket.ChildProcess.spawn.stdin (child_process.js:823:11)
at Socket.EventEmitter.emit (events.js:96:17)
at Socket._destroy.destroyed (net.js:358:10)
at process.startup.processNextTick.process._tickCallback (node.js:245:9)
logout

[Process completed]

What version of FileSync where you using to cause this error? I can't re-create it. I have seen this error in the past and fixed it. It's a result of the osx-notifier module not getting enough parameters. If you would like to debug further, simply put some console.log(...) statements around line 124 in src/notify.js. Eg.

        if (isMac) {
            console.log('checking args...');
            console.log(notifyArgs);
            //notify(notifyArgs);
        } else {
            // windows support?
            // linux support?
        }

Here's the output:

checking args...
{ type: 'pass',
title: 'Download Complete',
subtitle: '',
message: '(KeySite) Base Styles (content_css:style)',
open: 'https://removedinstancename.service-now.com/content_css.do?sysparm_query=name=(KeySite)%20Base%20Styles' }

I suspect the crash is happening because I often use brackets in the record name.

Yep. I can confirm it's the curved brackets causing the issue with the osx-notifier app.
I added an issue here:
chbrown/osx-notifier/issues/1

I also have a workaround for now that I will add shortly.

Tested and the FileSync is no longer crashing. Thanks for fixing this up.