Ruby on Rails в git-хуке - PullRequest
       12

Ruby on Rails в git-хуке

1 голос
/ 27 июня 2011

Я нахожусь в процессе создания приложения на Rails, которое будет подключаться к git-репозиторию и будет выполнять некоторый код всякий раз, когда в репозиторий помещается сообщение. Я пытаюсь сделать это с помощью git-хуков, но я не могу работать с приложением Rails из указанных хуков.

Я пытался использовать rails runner в качестве shebang (#! / Path / to / rails runner) хуков, но поскольку пространство не считается разделителем аргументов в shebangs, он пытается выполнить файл с именем "rails runner", который не работает. Я также попытался выполнить скрипт как Ruby (#! / Usr / bin / ruby) и включить файл rails config / environment.rb, но это, похоже, вызывает старое "app / models / X.rb, как ожидается, определит X" ошибка. На данный момент у меня нет кода, поэтому я не могу вставить предполагаемую функциональность, чтобы увидеть, есть ли где-то ошибка в моем коде, но я просто хочу знать, каков правильный подход к выполнению кода Rails вне Путь к приложению Rails:?

Спасибо

Ответы [ 2 ]

3 голосов
/ 27 июня 2011

Вы должны быть в состоянии использовать трюк /usr/bin/env:

#!/usr/bin/env /path/to/rails runner

Утилита env просто запускает свои аргументы как обычную команду, обычно она используется для выполнения PATH поиска вещей в шебанге.

2 голосов
/ 27 июня 2011

Если то, что, по словам @mu, слишком коротко, не сработало, попробуйте запустить метод внутри приложения Rails, сохранив большую часть кода внутри приложения, а не в ловушке git.

Как это:

#!/bin/sh

bundle exec rails runner 'SomeJob.perform'

Где #perform метод SomeJob выполняет фактическую работу, а ваш сценарий оболочки просто вызывает его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...