是否有任何明顯的命令(無論是rails命令,rake命令還是其他)可用於從shell腳本中獲取rails項目根目錄的路徑?從shell腳本知道Rails項目根目錄
語境:
我正在寫一個shell腳本。我將從rails項目中的任意目錄執行該腳本,並且腳本需要確定rails項目根目錄的絕對路徑。
因此,舉例來說,如果腳本是
#!/bin/bash
rails_root=# get the root somehow...
,並鑑於我的項目的根目錄是
/home/myuser/projects/myrailsapp
那麼我應該能夠把這個腳本在
/home/myuser/projects/myrailsapp/scripts/myscript
並從項目中的其他地方調用
cd /home/myuser/projects/myrailsapp/app/assets
../../scripts/myscript
和腳本應該能夠知道根目錄的路徑。
我已經想出瞭解決這個問題的兩種不同的方式:
#!/bin/bash
rails_root=$(rake about | grep 'Application root' | sed 's/Application root[ ]*//')
#!/bin/bash
rails_root=$(rails c <<-EORUBY | grep ^rails_root_is | sed 's/rails_root_is//'
puts "rails_root_is#{Rails.root}"
EORUBY
)
但我覺得應該有這樣做更明顯的方式。我期待使用現有的命令。
你爲什麼不創建一個rake任務,而不是一個shell腳本? – max
@max感謝您的建議。我從來沒有寫過一個耙子任務,所以它沒有想到,但是,是的,也許這會更適合我。 – abl