После покупки ssd диска возникла тяга к оптимизации системы.
Начитавшись разных постов, я понял, что мне нужно отключить создание кешей браузером. Мой дефолтный браузер - Chrome, немного погуглив, обнаружил, что люди под макосью не очень волнует вопрос отключения кешей хрома, потому решил запустить используя способ из windows, а именно с определенными ключами командной строки и способ на удивления сразу заработал, но возникла проблема в том, что я не знаю как в макоси создавать ярлыки с ключами.
Немного погуглив нашел примеры, которые работали, но на половину. Нужно было создать applescript
do shell script "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome %U --disk-cache-size=1 --media-cache-size=1"
и сохранить все это дело как приложение, но иконка скрипта начинает висеть в доке, а процесс считается зависшим.
Поэтому погуглив еще, нашел пример как можно сразу созданный родительский(зависший) процесс убить (свой ярлык-приложение я назвал chrome_nocache)
do shell script "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome %U --disk-cache-size=1 --media-cache-size=1 & killall chrome_nocache"
но данный способ ни как не хотел работать, так как процесса с таким имененм не находилось. Тут я на какое то время застрял....но с утра вернувшись к проблеме решил подойти не состороны поиска нужного мне процесса, а посмотреть, что же создает редактор applescript. И увидел что нужно было искать не chrome_nocache, а applet, именно такое название было у приложения в пакете. Итак, я переписал свой скрипт на
do shell script "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome %U --disk-cache-size=1 --media-cache-size=1 & killall applet"
и все вроде бы заработало. Появляется иконка скрипта в доке, затем вызывается браузер, а иконка исчезает, но убивать процесс с именем applet мне показалось как то грубо, мало ли что с таким именем нужно у меня будет висеть. Я решил посмотреть, как бы все это дело довести до ума что бы убивался именно мой процесс с уникальным и просто отличным именем :). Для этого я переименовал приложение внутри пакета, поменял свой скрипт на собственное название процесса и попробовал запустить, но все перестало работать. Все оказалось чуть сложнее, попробовав открыть файлы находящиеся внутри пакета в текстовом редакторе Sublime я нашел интересный файл Info.plist в котором два раза упоминалось applet
<key>CFBundleExecutable</key>
<string>applet</string>
<key>CFBundleIconFile</key>
<string>applet</string>
второй ключ указывал на иконку приложения, а вот первый я поменял на chrome_nocache. Сохранив результат я попробовал опять вызывать иконку-приложение и о чудо, все заработало, но возникло опять огромное НО.... система начала выдавать вопрос, точно я хочу что бы был выполнен скрипт или нет. Найдя мало результатов по этой проблеме, я нашел целый скрипт на bash, который пересоздавал некий файл ресурсов(или что то типа). fixAppleScriptApp который исправил мое приложение. Выполнив
sh fixAppleScriptApp.sh /Applications/chrome_nocache.appполучил хорошо работающий ярлык-приложение. Единственное что я еще допилил, так это утащил ярлык из пакета с хромом в свое приложение дабы было красиво.
Комментариев нет:
Отправить комментарий