Aplicando con Platypus:
Descargue Platypus y cree una aplicación desde el script de shell.
Ejemplo:
Laconfiguraciónanteriorcreaunaaplicaciónconunabarradeprogreso(incluidoslosdetalles)ysepuedecerrar,aunqueelprocesorsyncdebecancelarse(eliminarse)manualmente.
LapropiaaplicaciónsepuedeencontrarconSpotlight.
SoluciónsimpledeAppleScript:
EnMavericks(yprobablementemásadelante)debespermitirquelaaplicaciónAppleScriptcontrolelacomputadoraen"Preferencias del sistema - > Seguridad y privacidad - > Privacidad - > Accesibilidad"
Abra ScriptEditor, ingrese el fragmento de código a continuación y expórtelo como una aplicación con un nombre único:
tell application "Terminal"
delay 2
set newWindow to do script "caffeinate -s rsync -hva --progress --stats --delete /path/to/folder /path/to/folder2"
activate
end tell
Si necesita permisos de root, haga clic en el prefijo sudo - > "sudo cafeinate -s ...."
Puedes refinar la aplicación AppleScript verificando si Terminal ya tiene ventanas abiertas y crear una nueva para ejecutar el script de shell:
set myScript to "caffeinate -s rsync -hva --progress --stats --delete /path/to/folder /path/to/folder2"
tell application "System Events"
if exists (window 1 of process "Terminal") then
tell application "Terminal"
set newWindow to do script myScript
activate
end tell
else
tell application "Terminal"
delay 2
set Window1 to do script myScript
activate
end tell
end if
end tell
La aplicación AppleScript se puede encontrar con Spotlight.
En Mountain Lion, debes habilitar "Preferencias del sistema - > Accesibilidad - > Habilitar el acceso para dispositivos de asistencia" y cambiarlo un poco para que las soluciones de la aplicación AppleScript funcionen correctamente:
set myScript to "caffeinate -s rsync -hva --progress --stats --delete /path/to/folder /path/to/folder2"
tell application "System Events"
if exists (window 1 of process "Terminal") then
tell application "Terminal"
reopen
activate
set newWindow to do script myScript
end tell
else
tell application "Terminal"
reopen
activate
do script myScript in window 1
end tell
end if
end tell
AppleScript con script de shell "externo" (backup.sh):
Este es el enfoque final que utiliza el OP. Tomado de aquí . En Mavericks (y probablemente más adelante), debe permitir que la aplicación AppleScript controle la computadora en "Preferencias del sistema - > Seguridad y privacidad - > Privacidad - > Accesibilidad". Uno puede cargar el .sh
completo (colocado dentro de la aplicación en Contents/Resources/backup.sh
) con:
set bashFile to path to resource "backup.sh"
tell application "Terminal"
delay 1
activate
set newWindow to do script "bash " & quoted form of (POSIX path of bashFile)
end tell
Puedes refinar la aplicación AppleScript verificando si Terminal ya tiene ventanas abiertas y crear una nueva para ejecutar el script de shell:
set bashFile to path to resource "backup.sh"
tell application "System Events"
if exists (window 1 of process "Terminal") then
tell application "Terminal"
delay 1
set newWindow to do script "bash " & quoted form of (POSIX path of bashFile)
activate
end tell
else
tell application "Terminal"
delay 2
set Window1 to do script "bash " & quoted form of (POSIX path of bashFile)
activate
end tell
end if
end tell