Создание сценария оболочки subversion на Centos

У меня установлена ​​Subversion на CentOs 6.4, и я хочу написать сценарий (насколько я понимаю, сценарий оболочки) для запуска нескольких команд. Моя проблема здесь заключается не в написании сценария оболочки, а в предоставлении параметра для сценария оболочки (так что в некотором роде функции), чтобы иметь возможность выполнить запрос.

По сути, я хочу сделать следующее:

  1. Запустить скрипт с параметром из SSH ("сомскрипт reponame")
  2. Создать репозиторий: svnadmin create /var/www/svn/reponame
  3. Изменить владельца репо: chown -R apache.apache /var/www/svn/reponame -R
  4. Внесите изменения в систему безопасности: chcon -R -t httpd_sys_content_t /var/www/svn/reponame/
  5. И chcon -R -t httpd_sys_rw_content_r /var/www/svn/reponame
  6. Создайте каталоги по умолчанию: svn import -m 'Первоначальный импорт' /tmp/svn-structure-template/ http://domain.com/svn/reponame/ (localhost не принимается stackoverflow)

Может ли кто-нибудь предложить некоторые рекомендации или, возможно, предоставить альтернативу, которую я могу использовать? Будет ли работать PHP-скрипт (чтобы запустить его из браузера и использовать какую-то строку запроса, и не вызовет ли это некоторых проблем с безопасностью, поскольку apache является владельцем по умолчанию, и для некоторых из них может потребоваться доступ root / sudo).

Заранее спасибо!


person mauzilla    schedule 03.09.2013    source источник
comment
В чем проблема с bash-скриптом с параметрами ($1, $2..)?   -  person Fausto Carvalho Marques Silva    schedule 03.09.2013


Ответы (1)


Как сказал Фаусто в комментарии, стандартные параметры Bash должны работать нормально. В ProjectLocker мы используем сценарии, аналогичные описанным вами, для подготовки новых репозиториев Subversion, и вы должны просто иметь возможность ссылаться «$1», «$2» и так далее в сценарии.

Между прочим, вам не нужно импортировать в расположение http://, если вы работаете на машине с экземпляром, если это усложняет задачу. Ты можешь сделать:

 svn import -m 'Initial import' /tmp/svn-structure-template/ file:///var/www/svn/reponame

хотя я бы рекомендовал сначала протестировать это, чтобы убедиться, что это не приведет к нежелательному изменению разрешений. Если это так, вы можете просто запустить его до смены разрешений apache и блокировки.

person brokenbeatnik    schedule 06.09.2013