Jak uruchomić Applescript na dysku


11

Chcę uruchomić Applescript po zamontowaniu określonego dysku. Nie chodzi o to, czy skrypt znajduje się na dysku, czy nie, powinien po prostu zostać uruchomiony, gdy system OS X zamontuje dysk.

Próbowałem to osiągnąć za pomocą akcji folderów, ale wygląda na to, że nie można tego zrobić w ten sposób.

Wyjaśnienie:

  1. Wracam do domu z moim Macbookiem
  2. Podłączam hub USB do urządzenia
  3. Dyski zewnętrzne są montowane w systemie OS X
  4. Mój Applescript uruchamia się, robi jakieś rzeczy na tych dyskach

Chcę zautomatyzować krok 4.


Odpowiedzi:


4

Nie wspominasz, w jakim kontekście montujesz dysk, ale co powiesz na odwrót i zamontowanie dysku za pomocą Applescript?

Wspominam o kontekście, ponieważ podczas montowania dysku za pomocą Applescript jest dużym zastrzeżeniem, że jeśli jest to wolumin sieciowy, a sieć jest chroniona hasłem, nazwa użytkownika i hasło muszą być przechowywane w skrypcie jako zwykły tekst wykonanie.

AKTUALIZACJA: Trochę wyszukiwania znalazło podobne pytanie w innym miejscu. Zasadniczo można utworzyć skrypt, aby to zrobić, stosując skrypt jako akcję folderu do / Woluminów:

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

Nie chcę montować dysku za pomocą AS, chcę uruchomić AS po zamontowaniu dysku. Zedytuję swój post, aby był bardziej przejrzysty.
jsadfeew

Zrozumiałem pytanie, ale nie sądzę, że można to zrobić bardzo łatwo. Jednak obejrzałem trochę i znalazłem coś, co powinno działać z drobnymi poprawkami, aby zaspokoić twoje potrzeby.
Philip Regan,

Wprowadziłem niewielkie modyfikacje skryptu. Działa dobrze :)
jsadfeew

12

Prawdopodobnie najbardziej niezawodnym rozwiązaniem jest utworzenie launchdzadania z StartOnMountwłaściwością ustawioną na -boolean YES:

StartOnMount <boolean>
Ten opcjonalny klucz powoduje uruchomienie zadania przy każdym podłączeniu systemu plików.

Tak robi to wehikuł czasu (patrz /System/Library/LaunchDaemons/com.apple.backupd-attach.plist).


Wydaje mi się, że jest to najbardziej niezawodne rozwiązanie, ponieważ zależy tylko od uruchomienia, czyli tam, gdzie właściwie znajduje się „tego rodzaju rzecz”.
Matt

2

Użyj Finder FolderAction, który monitoruje / woluminy. Kiedy pojawi się nowy folder, oznacza to, że nowy dysk został dołączony. Teraz twoja FolderAction może uruchomić akcję Automatora, AppleScript lub skrypt powłoki, aby wykonać twoje zadanie.



0

Rozwiązaniem byłoby utworzenie aplikacji Automator łączącej 3 następujące działania:

  • Uzyskaj określone przedmioty Findera
  • Zamontuj obraz dysku
  • Uruchom AppleScript

1
Ponownie, nie chcę montować obrazu ani dysku za pomocą Applescript, chcę uruchomić skrypt, gdy dysk zostanie zamontowany. Nie mogę znaleźć sposobu na osiągnięcie tego za pomocą twoich kroków.
jsadfeew

Tak, po wyjaśnieniu widzę, że to nie działa, ponieważ to dysk twardy, który montujesz (a nie dysk obrazu).
kraymer

Ponieważ twoja odpowiedź dotyczy innego pytania niż zadane, powinieneś rozważyć jego usunięcie.
DanielSmedegaardBuus

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.