Периодический запуск osascript в сценарии оболочки для запуска сценария Apple

Что я делаю

Я периодически запускаю сценарий оболочки, который проверяет разрешение моего экрана. Основываясь на этом, он запустит один из двух сценариев Apple, которые в основном изменяют видимость в другом приложении (инструменты для гиков).

Моя проблема

Яблочный скрипт работает сам по себе. Я понимаю, что osascript - это способ вызвать сценарий Apple, потому что, если я попытаюсь запустить его напрямую, он скажет, что «не может выполнить двоичный файл». Однако, когда я использую osascript $Home/path/smallscreen.scpt, это дает мне новую ошибку:

osascript[61390:1405791] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types:  dlopen(/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found.  
Did find: /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: no matching architecture in universal wrapper
osascript: OpenScripting.framework - scripting addition "/Library/ScriptingAdditions/Adobe Unit Types.osax" declares no loadable handlers.

Может быть, я просто что-то неправильно понимаю, но я подумал, что нужно прямо запустить скрипт из нижней части этого ответа: https://stackoverflow.com/a/16071855/2522073

Утверждая, что вы можете запустить скрипт Apple, как этот osascript /Users/USERNAME/Desktop/foo.scpt


Шелл-код:

rez=$(xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}')
echo $rez> $HOME/Documents/Geeklets/Displays_temp.txt
rezold=`grep -s . $HOME/Documents/Geeklets/Displays_temp.txt`

if [ "$rezold" != "$rez" ]; then
    if [ "$rez" == "1280 777" ]; then
        osascript /Users/coolguy/Documents/Geeklets/smallscreen.scpt 
    else
        $HOME/Scripts/Geeklets/largescreen.scpt
    fi  
fi

Мой сценарий Apple:

tell application "GeekTool Helper"

    set smallGroup to group "small"
    set largeGroup to group "large"
    set defultGroup to group "Default Group"

    set visible of smallGroup to true
    set visible of largeGroup to false
    set visible of defultGroup to true  

end tell

Я запускаю это на Mac 10.10.3.


person Howard    schedule 03.06.2015    source источник
comment
Я читаю немного больше об этом, похоже, это как-то связано с 32-битным и 64-битным. Все еще пытаюсь разобраться.   -  person Howard    schedule 03.06.2015


Ответы (1)


Это решило мою проблему. https://helpx.adobe.com/photoshop/kb/unit-type-conversion-error-applescript.html

Кажется, это была какая-то сторона проблемы 32-битной и 64-битной версии. Не проблема кодирования! Надеюсь, это поможет кому-то еще.

person Howard    schedule 03.06.2015