Как программно открыть файл эскиза, а затем запустить скрипт плагина? - PullRequest
0 голосов
/ 06 февраля 2019

Вопрос:

При запуске программно (через терминал / оболочку) есть ли способ убедиться, что приложение Sketch сначала открывает файл, а затем запускает скрипт плагина?

То, что я пробовал до сих пор:

Я пытаюсь открыть файл эскиза, а затем запустить программный скрипт плагина (через терминал).

Вот код плагина / скрипта:

function onRun(context) {

  var sketch = require('sketch')
  var document = sketch.getSelectedDocument()

  log('context: ' + context);
  log('Document name: ' + document.name());
}

Вот команда, которую я использую в терминале, чтобы открыть эскизный документ и запустить скрипт плагина на нем.

Команда терминала:

$ sketchtool run /path/of/plugin/pluginExample.sketchplugin "" "/path_of_sketchfile/filename.sketch"

Вывод команды терминала:

context: {
    api = "<MOJavaScriptObject: 0x6000008213a0>";
    command = "<MSPluginCommand: 0x6000000f9580>";
    document = "<MSDocument: 0x7fd0bfef5b30>";
    plugin = "<MSPluginBundle: 0x6000000f9880>";
    scriptPath = "/path/of/plugin/pluginExample.sketchplugin/Contents/Sketch/run.js";
    scriptURL = "file:////path/of/plugin/pluginExample.sketchplugin/Contents/Sketch/run.js";
    selection =     (
    );
}
TypeError: undefined is not an object (evaluating 'document.name')
line: 8

Проблема, которую яподозреваемый:

Похоже, проблема в том, что скетч не открывает файл перед запуском скрипта плагина.Я убедился, что файл существует по указанному пути.

...