J'ai une application AppleScript Automator qui, lorsque vous double-cliquez dessus, ouvre FTP et affiche une alerte confirmant la même chose. Cela fonctionne parfaitement comme prévu. Cependant, je cherche à le rendre un peu plus intuitif afin qu’il n’ouvre le FTP UNIQUEMENT que si ce dernier n’est pas déjà ouvert. Si FTP est déjà ouvert sur mon système, l'application doit le fermer.
Donc, fondamentalement, je veux utiliser l'application comme un commutateur à bascule qui ouvre ou ferme FTP en fonction de son statut actuel. Le code que j'utilise actuellement pour ouvrir FTP et afficher l'alerte est le suivant:
set ipaddr to IPv4 address of (get system info)
set sun to short user name of (get system info)
do shell script "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges
tell application "Finder" to display alert "FTP Launched and ready for file-transfer" & character id 8233 & character id 8233 & "User Name: " & sun & character id 8233 & "IP address: " & ipaddr
Est-ce que quelqu'un pourrait me diriger dans la bonne direction? Existe-t-il une variable système pouvant être utilisée pour extraire le statut FTP? Sur Terminal, je pourrais utiliser ceci:
ftp localhost
Et les résultats me diraient si c'est ouvert ou fermé. Mais comment puis-je informer AppleScript de la même chose?
Informations supplémentaires: Sortie de " ftp localhost " sur le terminal
Voici le résultat de ftp localhost quand FTP est fermé:
Et voici le résultat lorsque FTP est ouvert:
Ici, je tape juste sur Entrée sans aucune entrée et ensuite cela donne ceci:
la source
ftp localhost
revient exactement s'il est activé / désactivé dans votre question?Réponses:
Cela fonctionne comme un test de shell si vous remplacez par votre cible.
Nous utilisons à peine des outils complexes, nous envoyons simplement une commande au serveur qui lui permet de fermer notre connexion. Si cela fonctionne, le serveur ftp est opérationnel. Si nous ne pouvons pas nous connecter du tout, cette ligne revient
1
, sinon elle retourne0
.Digéré sur un AppleScript c'est quelque chose comme
la source
echo $?
après.echo $?
pour l'afficher