Commande Terminal sur un dossier depuis finder

Bloc de code:
L’action « Exécuter un script AppleScript » a rencontré une erreur : « sh: -c: line 0: unexpected EOF while looking for matching `"'
sh: -c: line 1: syntax error: unexpected end of file »
 
A l'affichage de la commande , est-elle correcte ? pour toi !
 
AH !
il manque les guillemets à la fin du nom du fichier ...
difficile quand on peut pas tester LOL!

Bloc de code:
on run {input, parameters}
    set ledossier to input as string
    set aa to ledossier as string
    set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
    set AppleScript's text item delimiters to {":"} --récupère la partie avant le dernier "."
    set nomcourt to (text item -2 of aa) as string
    set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
    set guil to ASCII character 34
   
    set macommande to "/opt/homebrew/Cellar/squashfs/4.5/bin/mksquash " & guil & "./" & nomcourt & guil & " " & guil & nomcourt & ".squashfs" & guil  & " " & "-comp zstd"
    display dialog macommande
   
    do shell script macommande
   
    return input
end run
 
on progresse :)

reste encore un pb de path
Bloc de code:
L’action « Exécuter un script AppleScript » a rencontré une erreur : « Cannot stat source directory "./mon dossier a squash" because No such file or directory »
 
Il trouve pas le dossier !

Tu lances bien le script en faisant un clic droit sur le dossier et en choisissant le service?
Et la commande affichée est-elle correcte ?
Tu es sur qu'il ne faut pas le chemin complet du dossier ?

Encore un faute vue le mode de compilation est zstd au lieu de zsdt

Bloc de code:
on run {input, parameters}
    set ledossier to input as string
    set aa to ledossier as string
    set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
    set AppleScript's text item delimiters to {":"} --récupère la partie avant le dernier "."
    set nomcourt to (text item -2 of aa) as string
    set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
    set guil to ASCII character 34
    
    set macommande to "/opt/homebrew/Cellar/squashfs/4.5/bin/mksquash " & guil & "./" & nomcourt & guil & " " & guil & nomcourt & ".squashfs" & guil  & " " & "-comp zsdt"
    display dialog macommande
    
    do shell script macommande
    
    return input
end run
 
Dernière édition:
Je veux bien essayer avec le chemin complet mais j'ai peur que ca passe pas pour l'utilisation. Car je vais utiliser ce squashfs sur un autre system, qui lui voudra lire dans le dossier ou il se trouve. Si je colles un path complet dans l'image ca va poser pb
 
Et ? çà fonctionne toujours pas ?
les réponses à ces questions si on veux avancer.
Tu lances bien le script en faisant un clic droit sur le dossier et en choisissant le service?
Et la commande affichée est-elle correcte ?
 
et il y a toujours une erreur ?
Fais un autre test, fais un copie de la commande qui s'affiche puis fais un collé dans le terminal pour voir s'il le prend!
 
Bloc de code:
L’action « Exécuter un script AppleScript » a rencontré une erreur : « Cannot stat source directory "./mon dossier" because No such file or directory »
 
Tu as fais le test ?
Fais un autre test, fais un copie de la commande qui s'affiche puis fais un collé dans le terminal pour voir s'il le prend!
Si le terminal ne le prend pas on essaiera avec le chemin complet !
 
il y aura le chemin complet uniquement pour le dossier, pas pour le fichier de sortie !

Bloc de code:
on run {input, parameters}
    set ledossier to input as string
    set aa to ledossier as string
    set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
    set AppleScript's text item delimiters to {":"} --récupère la partie avant le dernier "."
    set nomcourt to (text item -2 of aa) as string
    set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
    set guil to ASCII character 34
    
    set macommande to "/opt/homebrew/Cellar/squashfs/4.5/bin/mksquash " & quoted form of POSIX path of ledossier & " " & guil & nomcourt & ".squashfs" & guil & " " & "-comp zsdt"
    display dialog macommande
    
    do shell script macommande
    
    return input
end run
 
L’action « Exécuter un script AppleScript » a rencontré une erreur : « Could not create destination file: Read-only file system »

tu as une idée ?
 
A priori problème de chemin du fichier de sortie...
on va étudier çà...
 
Bon essai avec ce script qui met les chemins complets au dossier et au fichier de sortie

Bloc de code:
on run {input, parameters}
    set ledossier to input as string
    set aa to ledossier as string
    set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
    set AppleScript's text item delimiters to {":"} --récupère la partie avant le dernier "."
    set nomcourt to (text item -2 of aa) as string
    set cheminfichier to (text items 1 thru -3 of aa) as string
    set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
    set nomfichier to cheminfichier & ":" & nomcourt & ".squashfs"

    set guil to ASCII character 34
   
    set macommande to "/opt/homebrew/Cellar/squashfs/4.5/bin/mksquash " & quoted form of POSIX path of ledossier & " " &  quoted form of POSIX path of nomfichier  & " " & "-comp zsdt"
    display dialog macommande
   
    do shell script macommande
   
    return input
end run
 
Dans le terminal sur mac os il faut bien les chemins complets.
Dans le script il sont fabriqués avec le chemin récupéré du dossier qui à lancé le script donc il ne devrait pas y avoir de problème !
 
pense à supprimer la ligne qui affiche le chemin ...

display dialog macommande