это мой первый пост на этом сайте, так что извините, если это двойной пост, но я не смог найти ничего похожего.
Я работаю на MacBook Pro 13 в начале 2011 года, я установил ssd и переместил жесткий диск в optibay, произвел чистую установку Yosemite, мой второй жесткий диск - 1 ТБ, где я храню свою работу и данные перед созданием резервной копии, когда я ' м дома.
Мне не нужно, чтобы жесткий диск монтировался постоянно, и мне нужно экономить энергию и держать его скрытым, поэтому я удалил его из поиска в центре внимания, выполнил «sudo pmset -a discleleep 1» и создал два appleScript, один из которых будет запущен при входе в систему для прямого размонтирования жесткого диска, а второй запускается через ключ извлечения, который я изменил с помощью karabiner (ранее известный как KeyRemap4MacBook)
Второй скрипт запускает диалоговое окно, которое запрашивает пароль, а затем спрашивает, хочу ли я получить доступ к жесткому диску, если да, жесткий диск будет смонтирован, если нет, он будет размонтирован
Проблема заключается в том, что я заметил, что если я выключу свой macbook, пока смонтирован жесткий диск, идентификатор диска изменится для жесткого диска, перейдя с disk2 на disk1, и оба сценария попытаются размонтировать ssd, поэтому мне нужно вручную извлечь HDD и перезагрузите, чтобы все вернулось к нормальной жизни.
Что я хочу сделать, это изменить скрипт, который запускается с помощью клавиши извлечения, чтобы он запускал первый диалог, точно так же, как диалог выключения, удаляя кнопку отмены и добавляя кнопку с именем "Расширение" (которая является названием жесткий диск).
Я новичок в AppleScript, вот что я хочу сделать:Пример
Если перезагрузить нажата, то размонтировать жесткий диск и перезагрузить
Если нажать Sleep, то размонтировать hdd и sleep
Если выключено нажата, то размонтировать жесткий диск и выключение
Если Expansion нажата, запустите старый скрипт
Вот мой старый скрипт, новый скрипт должен прийти как раз перед ним
set my_password to display dialog ¬
"Allow access to Expansion" with title ¬
"Expansion" with icon caution ¬
default answer ¬
"" buttons {"Cancel", "OK"} default button 2 ¬
giving up after 295 ¬
with hidden answer
if text returned of my_password is "password here" then
set answer to the button returned of (display dialog "Allow access to Expansion?" with icon caution buttons {"Yes", "No"})
if answer = "Yes" then
do shell script "diskutil mountDisk disk2"
tell application "Notifications Scripting"
display notification "Expansion" subtitle "is now mounted" sound name "Blow"
end tell
else if answer = "No" then
try
do shell script "hdiutil eject disk2"
on error
tell application "System Events"
set termOpen to count (processes whose name is "Terminal")
set amOpen to count (processes whose name is "Activity Monitor")
end tell
tell application "Terminal"
activate
set newTab to do script "lsof /Volumes/'HFS HD'"
end tell
tell application "Activity Monitor"
activate
end tell
delay 3
set question to display dialog "Kill running?" buttons {"Yes", "No"} default button 2
set answer to button returned of question
if answer is equal to "Yes" then
do shell script "lsof -P | grep '/Volumes/HFS HD' | awk '{print $2}' | xargs kill -9"
do shell script "hdiutil eject disk2"
end if
tell application "Activity Monitor"
if amOpen is 0 then
quit
end if
end tell
tell application "Terminal"
if termOpen is 0 then
quit
else
close (first window whose selected tab is newTab) saving no
end if
end tell
end try
tell application "Notifications Scripting"
display notification "Expansion" subtitle "is now unmounted" sound name "Blow"
end tell
end if
else
tell application "Notifications Scripting"
display notification "A Goomba killed Mario!" subtitle "Next time, try jumping on it" sound name "Sosumi"
end tell
quit
end if
Спасибо за вашу помощь, и извините, если TLDR:p