2010-11-03 20 views
0

J'ai actuellement un SLA au format .rtf, qui doit être intégré dans .dmg en utilisant le format de ressource intermédiaire .r mac, qui est utilisé par l'utilitaire Rez. Je l'avais déjà fait à la main une fois, mais les mises à jour apportées au fichier .rtf sont écrasantes à propager sur l'image disque, et sujettes aux erreurs. Je voudrais automatiser cette tâche, ce qui pourrait aussi aider à ajouter d'autres langages ou variantes.Conversion d'un .rtf en une ressource mac .r, d'une manière scriptable

Comment le processus de conversion de texte .rtf en .r peut-il être automatisé?

Merci.

+0

J'aurais ajouté le tag "rez" stackoverflow à cette question, qui manque, mais ma réputation est trop faible pour créer un nouveau tag ... – moala

Répondre

0

Utilisez le port unrtf (à partir de macports), puis formatez les lignes, l'en-tête et la queue avec un script shell.

1

seulement parce que je ne l'ai pas bien comprendre comment la réponse acceptée atteint effectivement l'objectif, j'utilise une combinaison d'un script pour générer le codage hexadécimal:

#!/usr/bin/env ruby 
# Makes resource (.r) text from binaries. 

def usage 
    puts "usage: #{$0} infile" 
    puts "" 
    puts " infile The file to convert (the output will go to stdout)" 
    exit 1 
end 

infile = ARGV[0] || usage 

data = File.read(infile) 
data.bytes.each_slice(16) do |slice| 
    hex = slice.each_slice(2).map { |pair| pair.pack('C*').unpack('H*')[0] }.join(' ') 

    # We could put the comments in too, but it probably isn't a big deal. 
    puts "\t$\"#{hex}\"" 
end 

La sortie de c'est inséré dans une variable lors de la construction, puis la variable se termine dans un modèle (nous utilisons Ant pour le faire, mais les détails ne sommes pas particulièrement intéressant):

data 'RTF ' (5000, "English SLA") { 
@[email protected] 
}; 

l'un bit de ce qui a pris un certain temps pour comprendre est que 'RTF ' peut être utilisé pour la ressource directement. Les docs Apple disent d'insérer séparément 'TEXT' (avec juste le texte en clair) et 'styl' (avec juste le style). Il y a des outils pour le faire bien sûr, mais c'était un outil de plus à exécuter et je ne pourrais jamais comprendre comment faire fonctionner les hyperliens dans le DMG résultant. Avec 'RTF ', les hyperliens fonctionnent. En espérant que cela permettra à quelqu'un de gagner du temps dans le futur.