TextMateで作成したRubyスクリプトがあり、TextMateで正常に実行できます。このスクリプトをターミナルから直接実行することもできます。
スクリプトには、次のコードのチャンクが含まれています。
# Get the XML file
puts 'Opening the file'
open("messages.xml", "r") do |f|
puts 'File is opened'
theXML = Hpricot::XML(f)
puts 'Trying to get the message_entity'
message_entity = GetMessage(theXML)
# Build the system command
puts 'Getting the author and the message'
theAuthor = message_entity.search(:author).text
theMessage = message_entity.search(:messagetext).text
# Get the correct image for this author
theAuthorImage = ''
case theAuthor
when 'James' : theAuthorImage = 'images/me32.png'
when 'Zuzu' : theAuthorImage = 'images/Zuzu32.png'
end
puts "/usr/local/bin/growlnotify '" + theAuthor + " says' -m '" + theMessage + "' -n 'Laurens Notes' --image '" + theAuthorImage + "'"
#system("/usr/local/bin/growlnotify '" + theAuthor + " says' -m '" + theMessage + "' -n 'Laurens Notes' --image '" + theAuthorImage + "'")
end
puts 'The End'
スクリプトがGeekToolによって実行される場合、スクリプトが通過することはありませんputs 'File is opened'
。ヒットすらしませんputs 'The End'
。エラーはまったく発生しません。
スクリプトはMacのフォルダの下にあり/System
ますが、ファイルのアクセス許可を変更して、「全員」が「読み取りと書き込み」にアクセスできるようにしました。
編集
ユーザーのホームフォルダのすぐ下のフォルダにファイルをコピーしましたが、GeekToolにはまだ問題がありますが、TextMateやターミナルから直接問題が発生することはありません。
編集終了
2回目の編集
GeekToolには、ファイルへのパスに問題がある可能性があると思います。
たとえば、今のところインターネットから直接XMLファイルを読み取るようにプログラムを変更しましたが、それは問題なく実行されますが、プログラムがgrowlnotifyのアイコンに使用している画像がいくつかあります。TextMateを実行すると、これらのアイコンは完全に表示されます。GeekToolを使用して実行する場合...いいえ。カスタムアイコンはまったくありません。
これは、GeekToolがファイルパスを正しく処理できないかのようです。私がそうするときputs __FILE__.to_s
、それは私に私の.rbファイルへの正しいファイルパスを与えます。
** 2回目の編集を終了**どうすればよいですか?