Možná i vy jste už někdy chtěli automatizovat nějakou činnost, kterou denně děláte na Macu – spouštění aplikací, přihlašování na webové stránky, spouštění skriptů atd. Ruční opakování těchto úkonů zabere spoustu času. Naštěstí v macOS existuje nástroj na automatizaci AppleScript. V tomto článku se podíváme, jak jsem pomocí chatu GPT automatizoval proces spouštění virtuálního stroje (VM) na Azure a připojení přes Microsoft Remote Desktop. Ukážu vám postup, jak jsem to udělal já, abyste si mohli podobnou automatizaci nastavit také.
Nejprve jsem si promyslel, co přesně chci automatizovat. Šlo o tyto kroky:
Potom jsem zadal GPT dotaz, jak by takovou automatizaci realizoval na macOS. Dostal jsem podrobný návod, že je potřeba použít kombinaci Azure příkazů (Azure CLI) v macOS terminálu pro ovládání Azure, následně AppleScriptu pro spuštění aplikací a bash skriptů pro spojení obou světů dohromady.
Nejprve bylo potřeba nainstalovat Azure CLI a následně se lognout do MS accountu.
brew update && brew install azure-cli
az login
Následně jsem vytvořil bash skript (pomocí GPT), který kontroluje stav virtuálního stroje a v případě potřeby ho spustí:
#!/bin/bash
resourceGroup="myResourceGroup"
vmName="myVM"
vmState=$(az vm get-instance-view --name $vmName --resource-group $resourceGroup --query instanceView.statuses[1] --output tsv)
if [ $vmState == "VM running" ]; then
echo "VM už běží"
else
echo "Spouštím VM..."
az vm start --name $vmName --resource-group $resourceGroup
fi
Dále následuje druhý krok, který spustí samotnou aplikaci MS Remote Desktop. Tento krok již probíhá na mém desktopu. Pro otevření aplikace Microsoft Remote Desktop a automatické připojení k virtuálnímu stroji jsem použil AppleScript:
tell application "System Events"
if not (exists (process "Microsoft Remote Desktop")) then
tell application "Microsoft Remote Desktop"
activate
end tell
delay 5 -- Čekání na načtení aplikace
else
tell application "Microsoft Remote Desktop"
activate
end tell
end if
end tell
delay 3 -- Čekání na načtení aplikace, možná bude potřeba upravit dobu
-- Provedení dvojkliku na souřadnicích {X, Y} pomocí cliclick
do shell script "PATH TO INSERT dc:X,Y"
delay 2 -- Čekání na otevření přihlašovacího dialogu
tell application "System Events"
-- Vložení přihlašovacích údajů...
end tell
Tento skript otevře aplikaci, stiskne klávesy pro připojení k novému připojení, zadá přihlašovací údaje a připojí se. Problém jsem měl zejména s doubleclickem na PC okno. Vyřešil jsem to přes https://pypi.org/project/clickclick/ , který tuto akci umožňuje (nenašel jsem pro AppleScript doubleclick action).