Despliegue la aplicación de Rails después de empujar git

Quiero implementar mi aplicación en el server de testing remoto usando Capistrano Gema. Tanto git como rails deberían ejecutarse en el mismo server.

Tengo 2 usuarios 'git' para repositorys git y 'rails' con rvm instalado. Después de git push, quiero ejecutar hook post-receive, que se ejecuta en los rails y luego se despliega la tapa . Cuando probé push, recibí un post:

remote: su: must be run from a terminal 

¿Cómo puedo solucionar este post? ¿Puedo habilitar tty de alguna manera sobre la connection git ssh?

Puedo darme por vencido desde capistrano para este caso, pero aún así quiero que rvm y Rails sean utilizados solo por los Rails de usuario (por lo que probablemente tengan que ser utilizados en cada caso).


editar Ahora path por el problema. Probablemente esta es una solución muy mala, pero funciona;). De los guiones de abajo, eliminé los paths originales y los ecos.

gancho post-recepción antes de la caminata

 #!/bin/bash while read oldrev newrev ref do su rails #here script fails cd /path/to/rails/app/current/ && cap deploy done 

post-recivo ahora

 #!/bin/bash while read oldrev newrev ref do ssh rails@localhost '/path/to/scripts/deploy.sh' done 

script deploy.sh

 #!/bin/bash CAP_DIR="/path/to/capistrano/dir" RUBY="1.9.3-p194" GEMSET="gemset_name" [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" rvm use $RUBY rvm gemset use $GEMSET cd $CAP_DIR cap deploy