Как использовать вывод одного «сценария do shell» для другого в Applescript - PullRequest
0 голосов
/ 23 мая 2019

Я использую правило Mail.app (MacOS Mojave), которое создает задачу TaskWarrior для выбранного сообщения электронной почты с помощью AppleScript, использующего команду «do shell script».

Создание задачи - нетпроблема, но я хочу аннотировать задачу, которая требует, чтобы вы использовали выходные данные из сценария оболочки - «Созданная задача [номер]».Потому что аннотирование задачи - это следующий сценарий оболочки: task [число] annotete [ваша аннотация, в моем случае ссылка на сообщение электронной почты].

Я думал, что мне удалось получить «Созданная задача [номер]»результат от первого сценария оболочки к «task [number]», который является началом второго сценария оболочки, но Результатом теперь является то, что команда не указана - при условии «информации».

Я пытался использовать задержку 1, чтобы один сценарий оболочки ждал завершения другого, но безрезультатно.

Это конкретный сценарий:

tell application "Mail"
    set selectedMessages to selection
    set theMessage to item 1 of selectedMessages
    set messageid to message id of theMessage
    -- Make URL (must use URL-encoded values for "<" and ">")
    set urlText to "message://" & "%3c" & messageid & "%3e"
    set onderwerp to subject of theMessage
    set DueDate to display dialog "Wat is de due date?" default answer "friday"
    do shell script "/usr/local/bin/task add Email over " & onderwerp & " beantwoorden due:" & (text returned of DueDate) & " project:Work +email"
    -- This all works as it should. A task is created with the email subject and a due date that I give it. However, from here something goes wrong
    set task to the result
    set laatste to rich text 1 thru -2 of task
    set annotate to rich text 9 thru -1 of laatste
    do shell script "/usr/local/bin/" & annotate & " annotate" & urlText
end tell

Я ожидал, что выводом будет то, что задача [число] помечена urlText сообщения.Но я получаю:

error «Почта получила ошибку: команда не указана - при условии« информация ». Совпадений нет».номер 1

1 Ответ

0 голосов
/ 24 мая 2019

Команда не указана - при условии «информация».

Задайте себе вопрос, почему TaskWarrior не может видеть, что команда «аннотирует».Это потому, что ваш второй командный синтаксис неправильный.Измените

& " annotate" &

на

& " annotate " &

Запишите пробел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...