Existe-t-il un moyen d'obtenir une tâche launchd définie par l'utilisateur (c'est-à-dire comme celle de cette page) ? question ) pour obtenir la confirmation de l'utilisateur avant d'exécuter la tâche ? Un popup comme celui pour le sommeil programmé (avec oui/non et une minuterie en cas d'absence d'entrée de l'utilisateur) serait génial, sinon un simple popup oui/non fonctionnerait.
Réponses
Trop de publicités?Fais en sorte que launchd appelle cet AppleScript. Il affiche un dialogue avec un délai d'attente et appelle un shell script si l'utilisateur a sélectionné "Ok".
set timeoutInSeconds to 60
set abortOnTimeout to true
tell application (path to frontmost application as text)
try
set dialogResult to display dialog "Do you want to execute?" default button 2 giving up after timeoutInSeconds
on error number -128
return
end try
end tell
if gave up of dialogResult and abortOnTimeout then
return
end if
do shell script "/path/to/yourscript.sh"
Agents de lancement sont autorisés à interagir avec l'interface graphique, et même les démons peuvent utiliser osascript pour afficher des boîtes de dialogue.
Vous pourriez également utiliser quelque chose comme ceci dans un shell script :
osascript -e 'tell app (path to frontmost application as text)'
display dialog "Continue?"
end' || exit 0
Le script se termine par une erreur si l'utilisateur appuie sur le bouton d'annulation ou ferme la boîte de dialogue. Vous pourriez également demander à un processus d'arrière-plan comme SystemUIServer d'afficher la boîte de dialogue, mais vous devriez ajouter quelque chose comme activate application (path to frontmost application as text)
pour ramener le focus sur la fenêtre précédemment focalisée.