Як запустити Applescript на диску


11

Я хочу запустити Applescript, коли монтую певний диск. Це не те, якщо скрипт знаходиться на диску чи ні, він повинен просто запускатися, коли OS X монтує диск.

Я намагався виконати це за допомогою дій з папками, але схоже, що це неможливо зробити так.

Пояснення:

  1. Я повертаюся додому зі своїм Macbook
  2. Я підключаю свій USB-концентратор до пристрою
  3. Зовнішні диски змонтовані в OS X
  4. Мій Applescript запускається, робить якісь речі на цих дисках

Я хочу автоматизувати крок 4.


Відповіді:


4

Ви не згадуєте, під яким контекстом ви монтуєте диск, а як бути в іншому напрямку та монтажі диска за допомогою Applescript?

Я згадую контекст, тому що при монтажі диска з Applescript є великим застереженням, що якщо це мережевий об'єм, а мережа захищена паролем, то ім'я користувача та пароль повинні бути збережені як звичайний текст у скрипті для безперебійного використання виконання.

ОНОВЛЕННЯ: Трохи пошуку знайшли подібне питання в інших місцях. По суті, для цього можна зробити сценарій, застосувавши сценарій як дію папки до / томів:

on adding folder items to this_folder after receiving these_items
    repeat with aItem in these_items
        tell application "Finder"
            if (local volume of aItem) and (name of aItem is "[Name of Hard Drive]") then
                -- do something with the drive
                -- eject aItem
            end if
        end tell
    end repeat
end adding folder items to

Я не хочу монтувати диск з AS, я хочу запустити AS, коли диск встановлюється. Я відредагую свою публікацію, щоб зробити її більш зрозумілою.
— jsadfeew

Я зрозумів питання, але не думаю, що це зробити дуже легко. Я, однак, трохи подолав і знайшов щось, що повинно працювати з тюнінгу, щоб задовольнити ваші потреби.
— Філіп Реган

Я вніс кілька невеликих модифікацій у сценарій.
— Відмінно

12

Ймовірно найбільш надійне рішення - створити launchdроботу з StartOnMountвластивістю, встановленою для -boolean YES:

StartOnMount <boolean>
Цей необов'язковий ключ змушує запускати роботу щоразу, коли монтується файлова система.

Ось як це робить Time Machine (див. /System/Library/LaunchDaemons/com.apple.backupd-attach.plist).


Я відчуваю, що це найбільш надійне рішення, оскільки воно залежить лише від запуску, саме там "така річ" належним чином знаходиться.
— Метт

2

Використовуйте Finder FolderAction, який контролює / Томи. Коли з’являється нова папка, це означає, що новий диск був приєднаний. Тепер ваша FolderAction може виконати дію Автоматизатора, AppleScript або оболонку сценарію, щоб зробити вашу справу.



0

Рішенням було б створити додаток Automator, що поєднує три наступні дії:

  • Отримати вказані елементи Finder
  • Зображення диска кріплення
  • Запустіть AppleScript

1
Знову ж таки, я не хочу монтувати зображення чи диск із програмою Applescript, я хочу запустити сценарій, коли диск встановлюється. Я не можу знайти спосіб досягти цього своїми кроками.
— jsadfeew

Так, після уточнення я бачу, що це не працює, тому що це жорсткий диск, який ви встановлюєте (а не диск із зображеннями).
— краймер

Оскільки ваша відповідь стосується іншого питання, ніж те, що задається, вам слід розглянути можливість її видалення.
— DanielSmedegaardBuus

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.