script terminal & hosts

magicman

Membre junior
8 Septembre 2010
43
1
42
bonjour

N'étant pas très fort en applescript, je me permets de vous soumettre mes galères ^^
je souhaite créer un script pour modifier le fichier hosts dans le terminal
à la main ça donne :
- je lance le terminal
- je tape : sudo pico /etc/hosts (enter)
- je rentre mon pass (enter)
- je fais 7 fois flèche du bas
- je tape 127.0.0.1 www.monsitebloqué
- je fais un Ctrl x pour sauvegarder
- puis y pour confirmer (enter)
-puis exit et je ferme la fenêtre.

je pensais qu'en record de script je pouvais faire tout ça et qu'il allait enregistrer mes actions :) hey bhé non ça aurait été trop beau !
Mon idée finale est de bloquer l'accès de visionnage type netflix ou autre à partir d'une certaine heure pour éviter les tentations sur l'ordi familial quand tout le monde dort ! et donc de passer par un script modifiant le host à partir d'une certaine heure.

J'ai réussi à faire ça en maigre départ

tell application "Finder"
activate application "Terminal"
display notification "fin de l'accès"
end tell

qui me lance le terminal et informe que l'accès est fini.
je tente avec write d'écrire mon sudo pico, mais je n'y arrive pas. j'ai compris qu'il fallait donner une autorisation pour le faire, mais je n'y arrive pas...
donc ça butte là. et j'ai peur de butter également quand il faudra ajouter des touches spéciales comme enter ou ctrl ou la flèche du bas.

Vous savez tout :) si vous avez quoi que soit pour éclairer ma zone de travail car je n'y voit pas grand chose !

Merci pour vos retours !
 

Larme

Vétéran
Club MacG
11 Décembre 2007
6 507
399
Paris
Cela dépend si cela convient, mais tu pourrais avoir deux fichiers hosts que tu intervertirais (peut-être plus simple à faire que d'aller à la fin du fichier pour ajouter/retirer la ligne, surtout si tu rajoutes ou enlèves d'autres sites).
Si c'est assez cyclique et régulier, tu peux penser à un CRON.
 

magicman

Membre junior
8 Septembre 2010
43
1
42
j'ai réussi dans la nuit à faire ça :

tell application "Terminal"
activate
display notification "fin de l'accès"
end tell

tell application "System Events" to keystroke "sudo pico /etc/hosts "
tell application "System Events" to keystroke return
tell application "System Events" to keystroke "my password"
tell application "System Events" to keystroke return

delay 0.5
tell application "System Events" to keystroke "&éè;à;à;&" using shift down -- correspond avec le shift à 127.0.0.1
tell application "System Events" to keystroke " " -- quelques espace pour faire propre
tell application "System Events" to keystroke "www"
tell application "System Events" to keystroke ";" using shift down
tell application "System Events" to keystroke "netflix"
tell application "System Events" to keystroke ";" using shift down
tell application "System Events" to keystroke "com"

delay 0.1
tell application "System Events" to keystroke "x" using control down

delay 1
tell application "System Events" to keystroke "y"
tell application "System Events" to keystroke return
tell application "System Events" to keystroke "exit"
tell application "Terminal" to quit yes

y a quelques ratés mais ça fonctionne plutôt bien. faut surtout mettre des delay sinon ça va trop vite pour le terminal ^^

le fait de changer le host est une bonne idée. à voir où il se trouve et comment renommer des fichiers en applescript car ça je sais pas encore faire ^^

une idée sur les commandes que je dois utiliser ?