У меня есть скрипт Ruby, который я построил в TextMate и может успешно работать в TextMate. Я также могу успешно запустить этот скрипт прямо с терминала.Ruby, Mac, Geektool вопрос, права доступа к файлам?
Сценарий имеет этот кусок кода в нем:
# 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'
. Это не дает никакой ошибки.
Сценарий находится под папкой под папкой /System
на моем Mac, но я изменил разрешения на доступ к файлам, чтобы «каждый» имел «читать» доступ к «&». EDIT Я просто скопировал файлы в папку непосредственно в моей домашней папке пользователя, и у нее все еще есть проблема в GeekTool, но не в TextMate или прямо через терминал.
END EDIT
второй Редактировать
Я думаю GeekTool может иметь проблемы с путями к файлам может быть.
Например, я изменил программу, чтобы просто прочитать XML-файл прямо из Интернета на данный момент, и это просто отлично, но есть некоторые изображения, которые программа использует для значков в growlnotify. При прохождении через TextMate эти значки отображаются отлично. При запуске с использованием GeekTool ... нет. Никакой пользовательский значок вообще.
Как будто GeekTool просто не может правильно обрабатывать пути к файлам. Когда я делаю puts __FILE__.to_s
, он дает мне правильный путь к файлу моего .rb-файла.
** end 2nd edit ** Что мне делать?
Что фактическая команда оболочки в GeekTool, что вы пытаетесь запустить? – wesgarrison
ruby /path/to/my/file.rb Если я нахожу точную команду в Terminal, она работает. –