иметь относительную линию Шебанга - PullRequest
4 голосов
/ 24 июня 2011

Я пишу приложение rails и мне нужно запустить скрипты come через ./script/runner

пока я мог бы поставить

#!/home/cannon/src/timetracker/script/runner 

вверху, это не будет работать в производстве, где оно должно быть больше похоже на

#!/var/www/loclahost/htdocs/timetracker/script/runner -e=production

, поскольку ./script не находится на моем пути, и я не хочу, чтобы это было, как я могу позволить этому быть настроенным,

Я использую задание cron для запуска его на Linux-компьютере

Ответы [ 2 ]

9 голосов
/ 24 июня 2011

Используйте env в строке Шебанга, чтобы найти вещи на пути:

#!/usr/bin/env ./script/runner
0 голосов
/ 17 декабря 2016

Используйте это в верхней части вашего (ruby) скрипта, чтобы повторно выполнить его под локальным ./script/runner (который затем должен определять Rails, чтобы избежать бесконечного цикла)

exec("./script/runner",$0,*ARGV) unless defined?(Rails)

(Так что используйте обычный «рубиновый» шебанг в верхней части, будь то #!/usr/bin/ruby или #!/usr/bin/env ruby или любой другой вкус)

...