Bonjour,

je suis tout débutant en applescript (mais à l'aise en shell).
Je peux m'adapter à applescript (à partir de mon expérience dans d'autres langages).
Aussi, si vous connaissez des exemples de code applescript proches de ce dont j'ai besoin, plutôt que de vous embêter à corriger ce que j'ai fait, n'hésitez à m'indiquer des références!

Voilà le problème: ma copine voudrait avoir une copie de l'un de ses répertoires sur sa clé USB.
Je me suis dit que c'était facile à faire en shell script avec la commande rsync, mais il ne faudrait pas qu'elle ait à lancer un Terminal pour taper des commandes à la main (faut pas exagérer quand même (on est sur un mac!))!

Question 1: est-ce que applescript est le plus adapté pour "encapsuler" du shell dans une application cliquable?

J'ai commencé par faire une petite appli qui est censée, dans un premier temps, montrer les fichiers qui vont être copiés vers la clé (car nouveaux ou modifiés) ou supprimés de la clé (car supprimés du répertoire original):

(Attention les yeux! c'est mon premier script! merci d'être indulgents! (mais néanmoins de me corriger si nécessaire ))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
set from_dir to quoted form of "/Users/Stef/Desktop/Documents Stef/école"
set to_dir to quoted form of "/Volumes/KINGSTON/Stef/RSYNC"
set cmd to "/usr/bin/rsync -nrv --delete " & from_dir & " " & to_dir
 
display dialog (do shell script cmd)
ça marche presque! à quelques détails près!

Il affiche une boite de dialogue qui est trop étroite (comme la fameuse marge) pour contenir les lignes qui sont malencontreusement repliées (à environ 45 caractères)!

Question 2: peut-on spécifier la largeur de la boite de dialogue? Faut-il utiliser autre chose que "dialog"?

Et surtout le codage des caractères est pas top (je lui avais pourtant dit de ne pas mettre d'accents dans ses noms de fichiers et répertoires!). En gros, voilà ce que ça affiche (je l'ai copié de la partie "Réponses" de l'éditeur Applescript, mais c'est la même chose qui est affichée dans la boite de dialogue):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
\\#303\\#251cole/
\\#303\\#251cole/.DS_Store
\\#303\\#251cole/Calendriers Excel
\\#303\\#251cole/Programmation HistGeoC3.pdf
\\#303\\#251cole/Affichages ecole/
\\#303\\#251cole/Affichages ecole/.DS_Store
\\#303\\#251cole/Affichages ecole/Affiches-francais/
etc.


(quand ça marchera, je grep'erai -v les .DS_Store)

J'ai bien essayé de piper la sortie du shell script à travers toutes sortes de 'iconv' (de/vers utf8, de/vers iso8859-1, de/vers macRoman), mais cela ne change rien à l'affichage (ce que je trouve pour le moins bizarre, car ça change tout lorsque exécuté depuis le Terminal)! Par exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
set cmd to "/usr/bin/rsync -nrv --delete " & from_dir & " " & to_dir & " | iconv -f ISO-8859-1 -t UTF-8"
Question 3: comment peut-on gérer les accents des noms de fichiers retournés par un shell script?

Et, enfin, le nombre de lignes affichées est limité par la hauteur du dialog.

Question 4: peut-on afficher une liste de lignes de texte avec une scrollbar? Faut-il utiliser autre chose que "dialog"?

Pour l'instant, je n'ai pas d'autre problème (j'ai bien dit "pour l'instant"! ).

Merci d'avance pour toute aide, pointeur, etc.!

)jack(