Created
February 11, 2009 10:37
-
-
Save midore/61953 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
OS X リソースフォークを削除する | |
# for AppleScript at github | |
About file.applescrit | |
file.applescrpt は AppleScript で書かれたコンパイル以前のテキストファイル。 | |
file.scpt はコンパイル済みファイル。 | |
github にfile.scpt を push するとブラウジングできない。従って file.applescrpt を | |
push することになる。file.applescrpt を push する場合の利点について考えてみると。。。 | |
仮に、AppleScript Version が異なるマシンにコピーされた時、コンパイルが通るか通らない | |
かを使う人自身が確認できる。 | |
既にコンパイルされてるファイルを AppleScript Version が異なる環境で動かそうとすると、 | |
動かない場合があり(動くこともある)動かない原因をまじめに知りたい人は一旦テキストに戻す | |
ことを強いられるのだからこの手間をはぶける。 | |
そもそも、コンパイルしたものを配布すべきじゃないのでは?って気もしてくる... | |
file.appplescript で配布されていれば、自身でコンパイルする必要があるわけだから、 | |
仮にエラーが発生してもなんのエラーなのか一目瞭然だし、そのエラーがバージョンに依存するも | |
のなのか?なんなのか明瞭になる。配布側リソースも少なくてすむ。 | |
Referred page | |
http://macwiki.sourceforge.jp/wiki/index.php/OSXの固有コマンド | |
リソースフォークを維持したままコピーする方法。こちらに関する情報は google に豊富にあった。 | |
% ditto -V -rsrcFork | |
++++++ | |
Command: SplitForks, ditto, Getinfo | |
% SplitForks -sv abc.applescript | |
% ls -la | |
-rw-r--r-- 1 midore staff 82 2 11 17:50 ._abc.applescript | |
-rw-r--r--@ 1 midore staff 1006 2 11 17:48 abc.applescript | |
-rw-r--r--@ 1 midore staff 5276 2 11 17:47 abc.scpt | |
# abc.applescript のリソースフォークを本体と分離する「だけ」で削除はしてくれないので | |
# このコマンドを打つと何度でも._abc.applescript を吐き出してくれる。 | |
# 不要なので削除しておく。でも本体ファイルからリソースフォークが削除されているわけじゃない。 | |
% rm ._abc.applescript | |
# google で調べた結果、リソースを削除したファイルをつくるには ditto を使うとよいらしい。 | |
# リソースのないファイル名を xyz.applescript に。 | |
% ditto --norsrc abc.applescript xyz.applescript | |
# xyz.applescript に対し SplitForks でもってリソースを分離せよと命令しても、もはや | |
リソースは存在していないことを確認できた。 | |
% SplitForks -sv xyz.applescript | |
% ll | |
total 32 | |
drwxr-xr-x 5 midore staff 170 2 11 17:59 . | |
drwx------+ 9 midore staff 306 2 11 17:59 .. | |
-rw-r--r--@ 1 midore staff 1006 2 11 17:48 abc.applescript | |
-rw-r--r--@ 1 midore staff 5276 2 11 17:47 abc.scpt | |
-rw-r--r-- 1 midore staff 1006 2 11 17:48 xyz.applescript | |
# その他確認 | |
% GetFileInfo xyz.applescript | |
file: "/Users/midore/test/xyz.applescript" | |
type: "" | |
creator: "" | |
attributes: avbstclinmedz | |
created: 02/11/2009 17:48:50 | |
modified: 02/11/2009 17:48:50 | |
% GetFileInfo abc.scpt | |
file: "/Users/midore/test/abc.applescript" | |
type: "TEXT" | |
creator: "ToyS" | |
attributes: avbstclinmedz | |
created: 02/04/2009 02:26:46 | |
modified: 02/11/2009 17:47:18 | |
以上のことを知る前に作った自作スクリプト。 | |
file.applescript を扱う場合はファイル内容に日本語文字列が含まれていないことが条件になる。 | |
なんでかっていうと、生成されるファイルはコンパイルエラーじゃなくてもコンパイルできなくなるから。 | |
固める時は ptar コマンドを使う。 (OS X 10.5.6) | |
./copy-textfile.rb OriginalFolder/ NewFolder/ | |
<copy-textfile.rb> | |
-- | |
# -*- coding: utf-8 -*- | |
require 'find' | |
require 'fileutils' | |
dir1 = ARGV[0] | |
dir2 = ARGV[1] | |
def cat_cp(dir1,dir2) | |
files = Hash.new | |
Find.find(dir1){|path| | |
Find.prune if path =~ /.DS_Store/ | |
if FileTest.file?(path) | |
df = path.gsub(dir1,'') | |
nd = File.join(dir2, df) | |
FileUtils.mkdir_p(File.dirname(nd)) unless FileTest.exist?(File.dirname(nd)) | |
p str = "cat #{path} > #{nd}" | |
system(str) | |
end | |
} | |
end | |
orgdir = File.expand_path(dir1) | |
cat_cp(orgdir,dir2) | |
-- | |
% ptar -cvzf NewFolder.tar.gz NewFolder | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment