Le 17 mars 09 à 13:00, Yves Petronin a écrit :
> Existe t-il une commande permettant de modifier par exemple le
> "label index" (couleur) d'un fichier ou dossier directement depuis
> un script shell.
> J'ai trouvé la commande mdls qui affiche la valeur de l 'attribut
> kMDItemFSLabel , mais je n'ai rien trouvé pour l' éditer...
>
> J'expérimente avec ce qui suit, mais je voudrais éviter de passer
> par Osascript, car je suis débutant et je ne maitrise pas bien les
> échanges entre le script shell et Apple script.
> Merci
>
>
> #--SCRIPT
> #!/bin/sh
> osascript<<EOF
> tell application "Finder"
> set NouveauFichier to make new file at desktop with properties
> {name:"Toto.txt"}
> tell NouveauFichier to set its label index to 4
> end tell
> EOF
> #--SCRIPT
Comme il n'y a pas foule pour te répondre...
Il y a peut-être un outil CLI qui traîne quelque part à installer.
osxutils certainement. Mais ce truc ne m'avait pas du tout emballé à
l'époque (mauvaise gestion des paths avec accentués entre autres).
En attendant, je propose ce script/fonction shell qui passe par...
osascript ...
----
#! /bin/bash
## @(#) $Id: changeFinderLabel.sh 0M 2009-03-19T08:26:39Z dan $ v1.0.0
(Bourne-Again shell script text executable)
## Usage: changeFinderLabel.sh <label> <file>
## Test: for n in 0 1 2 3 4 5 6 7; do d="tôtô ${n}"; mkdir -p "$d";
changeFinderLabel.sh $n "${d}"; done
## Finder sometimes don't display all the new directories created.
Kill and relaunch it: ça lui fera les pieds.
## Exit immediately on error
set -o errexit # set -e
# Modifie l'étiquette d'un fichier [0..7]
function changeFinderLabel ()
{
local z="$1" f="$2"
# Test existence fichier
[[ -e "$f" ]] || { printf "$f: No such file or directory\n" >&2; exit
1; }
# Path complet (absolute path)
cd "$(dirname -- "$f")"
f="$(pwd)/$(basename -- "$f")"
cd -
/usr/bin/osascript <<-EOF
set f to "$f"
set f to POSIX file f as alias
set z to $z as integer
tell application "Finder" to set label index of f to z
EOF
} >/dev/null
changeFinderLabel "$1" "$2"
----
Remplacer le bloubiboulga cd-dirname-pwd-basename par realpath(1), si
enfin disponible pour Mac OS X.
Avec Leopard , il *semble* qu'osascript se soit amélioré pour la
conversion d'encodage de texte (ici le path du fichier).
Avant, je devais passer par une conversion spéciale.
--
Daniel
_______________________________________________
archives :
http://listes.patpro.net/list/sshfr.fr.html
http://listes.patpro.net/mailman/listinfo/script_shell_fr