Записи с меткой {javascript}

AppleScript → JavaScript: первый опыт

В Mac OS X Yosemite помимо кошмарного AppleScript добавлена поддержка JavaScript. Теперь для написания различной автоматизации наконец можно воспользоваться более-менее вменяемым языком программирования: из JavaScript будет доступно все то, что раньше было доступно из AppleScript.

Одно «но»: документирован джаваскриптовый API пока практически никак — на сайте Apple есть единственная страничка с довольно скудным описанием. И готовых скриптов в сети пока что очень мало.

Восполним этот пробел несколькими примерами, на которых хорошо видно некоторые неочевидные вещи.

Проверка: существует ли файл или папка

function file_exists(name) {
    try {
        return Application('System Events').files.byName(name).exists()
    } catch (e) {
        return false;
    }
}

function folder_exists(name) {
    try {
        return Application('System Events').folders.byName(name).exists()
    } catch (e) {
        return false;
    }
}

file_exists('~/Desktop/exists.txt');    // true
file_exists('~/Desktop/no-exists.txt'); // false
folder_exists('/Library');              // true
folder_exists('/somethingelse');        // false

Гист на гитхабе.

Особенность вызовов files.byName и folders.byName в том, что если вместо файла окажется существующий каталог (или наоборот: файл вместо каталога), то будет сгенерирована ошибка. Поэтому вызовы обернуты в try {} catch(e) {}.

Диалоговые окна

var result,
    my_app = Application.currentApplication();

my_app.includeStandardAdditions = true;

result = my_app.displayDialog(
    'What is your name',
    {
        defaultAnswer: 'John Doe'
    }
);

my_app.displayNotification (
    'Nice
Читать дальше →