یکی از روشهای اتوماسیون در macOS استفاده از AppleScript است. اپلاسکریپت زبان قدرتمندی برای اسکریپتنویسی است و قابلیت کنترل کردن اپلیکیشنهای که کتابخانهی مربوطه را داشته باشند، فراهم میکند. به عنوان مثال اگر بخواهید عکسها را به کمک Photoshop کوچک کنید، فولدرها را تغییر نام بدهید و فایلها را با اضافه کردن پسورد، قفل کنید، میتوانید اسکریپتی بنویسید که این کار سریع و ساده انجام شود.
در این مقاله به معرفی AppleScript پرداخته و مثالهایی از اسکریپتنویسی را بررسی میکنیم و در نهایت مراحل نوشتن یک اسکریپت ساده و اجرا کردن آن را بررسی میکنیم.
آشنایی با AppleScript
اپلاسکریپت مثل زبان Bash برای نوشتن اسکریپت طراحی شده تا کارهای تکراری و وقتگیر، به صورت خودکار و سریع انجام شود.
البته میتوانید به جای اپلاسکریپت از اپلیکیشن قدرتمند Automator برای اتوماسیون استفاده کنید. اپلاسکریپت در زمان معرفی Mac OS System 7 و در سال ۱۹۹۳ معرفی شده است و برای دسترسی به آن میتوانید فولدر Utilities که در پوشهی Applications قرار دارد را بررسی کنید.
با معرفی Mac OS X اپلاسکریپت پیشرفتهتر و کاربردیتر شد. اضافه شده فریمورک Cocoa موجب شده که توسعهدهندگان اپلیکیشن برای پشتیبانی از AppleScript تلاش بیشتری کنند و این کار سادهتر شود. لذا نتیجهی نهایی گسترس استفاده از AppleScript بوده است. در حال حاضر اپلاسکریپت مستقیماً با ترمینال یا واسط خط دستور مکاواس کار میکند که برای علاقهمندان به اجرای دستورات در محیط ترمینال مفید است.
آشنایی با اسکریپتهای نمونه
قبل از بررسی مثالی ساده از کار با اپلاسکریپت، بهتر است با اسکریپتهای نمونه آشنا شوید. اپلیکیشن AppleScript به صورت پیشفرض به همراه تعدادی اسکریپت در مکاواس نصب شده است. اسکریپتها در مسیر زیر قرار دارند:
Macintosh HD > Library > Scripts
برای بررسی کردن اسکریپتهای پیشفرض Script Editor را اجرا کنید. برای این مهم از ابزار جستجو یعنی Spotlight استفاده کنید و عبارت script editor را جستجو کنید و اولین اپلیکیشن را اجرا کنید. پس از اجرا کردن ابزار ویرایش اسکریپت، از منوی بالای صفحه مسیر Preferences و General و سپس Show Script را انتخاب کنید. در نهایت روی آیکون اسکریپت در نوار منو کلیک کنید.
همانطور که در تصویر زیر مشاهده میکنید، اسکرپیتها دستهبندی شده است:
با کلیک روی یکی از اسکریپتها در نوار منو، اسکریپت باز میشود.
اگر از مسیر Folder Actions گزینهی Attach Scripts to a Folder را انتخاب کنید، پنجرهای باز میشود و میتوانید اسکریپت موردنظر را انتخاب کنید تا به فولدر پیوست شود. انجام کارهایی مثل برگردان جانبی عکسها به صورت افقی یا عمودی، چرخش عکسها، ایجاد نسخهی کپی عکس با فرمت JPG یا PNG و غیره به کمک اسکریپت ضمیمه شده به فولدر، به صورت خودکار صورت میگیرد و در واقع اگر فایل جدیدی در فولدر قرار بگیرد عملیات روی آن انجام میشود.
پس از انتخاب اسکریپت و فولدر، روی فولدر موردنظر راستکلیک کنید و گزینهی Services و سپس Folder Action Setup را برای ستاپ اسکریپت انتخاب کنید. دقت کنید که تیک گزینهی Enable Folder Actions زده شده باشد تا اسکریپت کارش را انجام بدهد. اکنون اگر فایلی را در فولدر پیست کنید یا با روش درگ و دراپ، فایل را در فولدر قرار بدهید، عمل انتخاب شده انجام میشود.
بد نیست قبل از نوشتن اسکریپت جدید، با منوی Scripts و انواع و اقسام اسکریپتهایی که به صورت پیشفرض موجود است کار کنید تا عملکرد AppleScript و قابلیتهای آن روشن شود. برای درک بهتر از فرآیندی که یک اسکریپت خاص انجام میدهد، میتوانید فولدر اسکریپتها را باز کنید و روی اسکریپت موردنظر راستکلیک کرده و آن را در Script Editor باز کنید.
آشنایی با عبارت tell در اپلاسکریپت
اپل در طراحی AppleScript از سینتکسهای ساده و روشنی استفاده کرده تا درک کردن عملکرد سینتکس ساده شود. به همین جهت برخی سینتکسها طولانی به نظر میرسند چرا که از عبارتهای اختصاری استفاده نشده است. در تصویر زیر محتویات یک اسکریپت را مشاهده میکنید:
بخش ابتدایی که با (* شروع و به *) ختم میشود در حقیقت توضیحات و کامنت است و ارزش دستوری ندارد. برای نوشتن توضیح در مورد هر بخش از دستورات میتوانید از همین روش استفاده کنید. علاوه بر این میتوانید از دو خط فاصله در شروع خطوط توضیح استفاده کنید. مثل خط زیر:
--get the name of the folder
کمی پایینتر به سینتکس add یا اضافه شدن میرسیم. در واقع حین اضافه شدن فولدر به فولدر فعلی، عملیاتی انجام میشود. عبارت مهم tell نیز در این اسکریپت ساده استفاده شده است:
on adding folder items to this_folder after receiving added_items
try
tell application "Finder"
--get the name of the folder
set the folder_name to the name of this_folder
end tell
عبارت tell از سه بخش تشکیل میشود:
- کلمهی tell در ابتدای فرآیند
- عنصری که به آن ارجاع داده میشود: در این مثال اپلیکیشن Finder است.
- عمل یا اکشنی که باید انجام شود: در این مثال نامگذاری فولدر فعلی است.
چند خط دستور فوق موجب میشود که اپلیکیشن مدیریت فایل یعنی Finder، از نام فولدری که اسکریپت به آن ضمیمه شده به جای this_folder استفاده کند.
اسکریپتنویسی با AppleScript
برای شروع کار با اپلاسکریپت، مراحل نوشتن یک اسکریپت ساده و اجرا کردن آن را بررسی میکنیم. گامهای اصلی به صورت زیر است:
- ایجاد اسکریپت: برای این کار Script Editor را اجرا کنید و سپس از منوی File گزینهی New را انتخاب کنید.
- نوشتن اسکریپت: در پنجره اسکریپت ادیتور بخش فوقانی محل نوشتن اسکریپت است و بخش پایین برای مشاهده کردن خروجی کار حین اجرای اسکریپت کاربرد دارد.
در این مثال اسکریپت سادهای برای چاپ کردن دیالوگباکس Hello World را مینویسیم. برای این مهم تایپ کنید:
tell application "System Events" to display dialog "Hello world!"
- کامپایل کردن اسکریپت و بررسی خطاها: و برای کامپایل روی دکمهی چکش در نوار منو کلیک کنید تا کامپایل انجام شود. حین کامپایل کردن اگر خطایی در اسکریپتنویسی و سینتکسها وجود داشته باشد، گوشزد میشود. اگر خطایی وجود نداشته باشد، عملیات کامپایل با موفقیت تکمیل میشود و اسکریپت آمادهی اجرا خواهد شد.
- اجرا کردن اسکریپت: برای اجرا روی دکمهی Play که کنار دکمهی چکش قرار گرفته کلیک کنید.
- ذخیره کردن اسکریپت: اگر اسکریپت درست کار میکند، آن را ذخیره کنید. برای این مهم از منوی File و گزینهی Save استفاده کنید. در بخش File Format گزینهی Application را انتخاب کنید تا اسکریپت به عنوان یک اپ معمولی ذخیره شود. در این صورت هر زمان که بخواهید آن را اجرا کنید، نیازی به اجرا کردن اپلیکیشن Script Editor نیست بلکه میتوانید روی فایل اجرایی، دبلکلیک کنید.
با دبلکلیک کردن و همینطور با کلیک روی دکمهی Play، پیام زیر ظاهر میشود که مقصود این اسکریپت ساده و ابتدایی است:
برای مشاهده کردن انواع دستوراتی که حین اسکریپتنویسی برای اپلیکیشنهای مختلف میتوان استفاده کرد، از منوی File و گزینهی Open Dictionary استفاده کنید و سپس اپلیکیشن موردنظر را انتخاب کنید.
در نهایت یادآوری میکنیم که اپلیکیشن قدرتمند Automator هم برای اتوماسیون طراحی شده و حالت گرافیکی و بسیار ساده دارد. توانمندی AppleScript بیشتر از اتومیتور است اما اگر تجربهای در برنامهنویسی نداشته باشید، میتوانید از اتومیتور و قابلیتهای گستردهی آن استفاده کنید. به دو مثال زیر توجه کنید:
makeuseofسیارهی آیتی