Cara menjalankan Applescript pada Disk mount

11

Saya ingin menjalankan Applescript ketika saya memasang disk tertentu. Itu bukan jika skrip terletak pada disk atau tidak, itu hanya akan berjalan ketika OS X me-mount disk.

Saya mencoba menyelesaikan ini dengan tindakan folder, tetapi sepertinya tidak mungkin melakukannya dengan cara ini.

Klarifikasi:

  1. Saya pulang dengan Macbook saya
  2. Saya pasang USB Hub saya ke perangkat
  3. Disk eksternal dipasang di OS X
  4. Applescript saya dijalankan, melakukan beberapa hal pada disk tersebut

Saya ingin mengotomatiskan langkah 4.

jsadfeew
sumber

Jawaban:

4

Anda tidak menyebutkan dalam konteks apa Anda memasang disk, tetapi bagaimana dengan sebaliknya dan pemasangan disk dengan Applescript?

Saya menyebutkan konteks karena ketika memasang disk dengan Applescript adalah peringatan besar bahwa jika itu adalah volume jaringan, dan jaringan dilindungi kata sandi, maka nama pengguna dan kata sandi harus disimpan sebagai teks biasa dalam skrip agar mulus eksekusi.

UPDATE: Sedikit pencarian menemukan pertanyaan serupa di tempat lain. Pada dasarnya, skrip dapat dibuat untuk melakukan ini dengan menerapkan skrip sebagai Folder Action ke / Volume:

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
Philip Regan
sumber
Saya tidak ingin me-mount disk dengan AS, saya ingin menjalankan AS ketika disk dipasang. Saya akan mengedit posting saya untuk membuatnya lebih jelas.
jsadfeew
Saya mengerti pertanyaan itu, tetapi saya pikir itu tidak mungkin dilakukan dengan sangat mudah. Saya, bagaimanapun, sedikit berkeliling dan menemukan sesuatu yang harus bekerja dengan sedikit penyesuaian untuk memenuhi kebutuhan Anda.
Philip Regan
Saya membuat beberapa modifikasi kecil pada skrip. Bekerja dengan baik :)
jsadfeew
12

Solusi yang paling kuat adalah menciptakan launchdpekerjaan dengan StartOnMountproperti diatur ke -boolean YES:

StartOnMount <boolean>
Kunci opsional ini menyebabkan pekerjaan dimulai setiap kali filesystem dipasang.

Beginilah Time Machine melakukannya (lihat /System/Library/LaunchDaemons/com.apple.backupd-attach.plist).

Daniel Beck
sumber
Saya merasa seperti ini adalah solusi yang paling kuat, karena hanya bergantung pada launchd, yang merupakan tempat "hal semacam ini" berada.
Matt
2

Gunakan Finder FolderAction yang memantau / Volume. Ketika folder baru muncul, itu berarti disk baru telah terpasang. Sekarang FolderAction Anda dapat menjalankan aksi Automator, AppleScript, atau skrip shell untuk melakukan hal Anda.


sumber
1

MarcoPolo dapat melakukan tindakan berdasarkan pada lampiran disk.


sumber
Aplikasi ini didiskon, untuk sekarang harus menggunakan garpu terpelihara: controlplaneapp.com
Даниил Пронин
0

Sebuah solusi adalah dengan membuat aplikasi Automator yang merantai 3 tindakan berikut:

  • Dapatkan Item Pencari Spesifik
  • Pasang Gambar Disk
  • Jalankan AppleScript
kraymer
sumber
1
Sekali lagi, saya tidak ingin me-mount gambar atau disk dengan Applescript, saya ingin menjalankan skrip ketika disk dipasang. Saya tidak dapat menemukan cara untuk mencapainya dengan langkah Anda.
jsadfeew
Yap, saya melihat setelah klarifikasi bahwa itu tidak berfungsi karena itu adalah hard drive yang Anda pasang (dan bukan disk gambar).
kraymer
Karena jawaban Anda menjawab pertanyaan yang berbeda dari yang ditanyakan, Anda harus mempertimbangkan untuk menghapusnya.
DanielSmedegaardBuus