我目前有一个.rtf格式的SLA,它将使用Rez实用程序使用的中间.r mac资源格式集成到.dmg中。我已经手动完成了一次,但是对.rtf文件的更新压倒性地传播到磁盘映像,并且容易出错。我想自动执行此任务,这也可以帮助添加其他语言或变体。
如何将.rtf到.r文本转换的过程自动化?
感谢。
答案 0 :(得分:1)
只是因为我没有完全理解接受的答案如何实现目标,我使用脚本的组合来生成十六进制编码:
#!/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
在构建期间将其输出插入到变量中,然后变量最终出现在模板中(我们使用Ant来执行此操作,但具体情况并不特别有趣):
data 'RTF ' (5000, "English SLA") {
@english.licence@
};
确定需要花费很长时间的一点是'RTF '
可以直接用于资源。 Apple文档说单独插入'TEXT'
(仅使用纯文本)和'styl'
(仅使用样式)。当然有一些工具可以做到这一点,但它是另一个运行的工具,我永远无法弄清楚如何在生成的DMG中使超链接工作。使用'RTF '
,超链接就可以正常工作。
希望这能节省一些时间。
答案 1 :(得分:0)
使用unrtf
端口(来自macports),然后使用shell脚本格式化行,标题和尾部。