Executando comandos de Apple Script no Node.js

Para mim, automatizar tarefas no Mac é meio que uma diversão. Por exemplo, scripts para backup e sincronização no Google Drive, Dropbox e HD externo, envio de SMS quando tais backups chegam ao fim, execução de comandos bash personalizados e etc.

Recentemente criei um projeto em node que recebe comandos atavés de um MQTT Broker (usando publisher, claro!) que executa certas tarefas no Mac, uma vez que costumo sair do escritório e deixá-lo ligado. E o que mais uso, são Apple Scripts.

Precisei executar alguns Apple Scripts através do Node.js e encontrei a biblioteca node-osascript, não tenho muito o que falar, só que funciona perfeitamente.

Enfim, aqui eu instalei o pacote global

1
npm install node-osascript -g

E para testar, crie um script (o mesmo do exemplo na página do pacote), porém mudei para ativar o Google Chrome. Se ele estiver fechado, será aberto e se já estiver aberto, será focado/ativado.

Salve o script abaixo como index.js em qualquer pasta que você quiser.

1
2
3
4
5
6
var osascript = require('node-osascript');

osascript.execute('tell application "Chrome" to activate', function(err, result, raw){
if (err) return console.error(err)
console.log(result, raw)
});

Execute o script com o node e seja feliz.

1
node index.php

Para ver como funciona, você pode testar o Apple Script sem o node, usando o terminal do Mac:

1
osascript -e 'tell application "Chrome" to activate'

Não gosto de usar aplicativos prontos pois, para começar eu nunca encontro um que me atenda da forma que preciso, além de alguns custarem um preço absurdo (eu pelo menos não pago). Segundo, é legal criar esses scripts e aprender um pouco mais sobre node, apple scripts, javascript e etc. E tem mais, porquê pagar 30.. 50 dólares se eu posso fazer a mesma coisa em algumas horas?


Dicas por Gercil Junio - https://gercil.me

Proudly powered by Hexo and Theme by Hacker
© 2020 Faz-B Man