você está aqui: Home  → Arquivo de Mensagens

Script de criação de Repositórios no Subversion - mysvnadmin

Colaboração: Kaio Rafael

Data de Publicação: 06 de Janeiro de 2007

O script abaixo automatiza o processo de criação de um reposotório do Subversion, antes da execução do mesmo, mude as variáveis do script para seu funcionamento.

  #!/bin/bash
  #
  # Copyright 2006 Kaio Rafael de Souza Barbosa
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # the Free Software Foundation; either version 2 of the License, or
  # (at your option) any later version.
  #
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  #
  # ---------------------------------------------------------
  # Este script cria repositorio, muda a permissao para o apache
  # poder ler e escrever os commits realizados pelos usuarios
  #
  # Para mais detalhes do subversion acesse:
  # http://svnbook.red-bean.com/nightly/pt_BR/svn-book.html#svn.serverconfig.httpd
  # http://svnbook.red-bean.com/nightly/pt_BR/svn-book.html#svn.reposadmin
  
  
  # Variables
  
  svn_root_home=/home/kaio/web-svn # diretorio que armazena todos os repositorios do subversion
  svn_adm_cmd=/usr/bin/svnadmin # comando do svnadmin
  apache_user=www-data # usuario que executa o apache
  apache_group=www-data # grupo do usuario que execua o apache
  svn_pass=/etc/apache2/senha # senha dos usuarios do subversion
  svn_access_file=/etc/apache2/projetos # diretorio com as permissoes do subversion
  svn_tmp=/tmp/repos # arquivo temporario
  svn_web_page=/svn # endereco web que ficara o repositorio http://server/svn/nome_repositorio
  nome_empresa="Free Software Foundation" # Nome da sua empresa
  
  # Functions
  
  create_svn(){
   echo -n "Entre com o nome do repositorio a ser criado: "
          read svn_repos
  
             # verifica se o repositorio ja existe
  
            if [ -d ${svn_root_home}/${svn_repos} ];then
                   echo "Repositorio ${svn_repos} ja existe"
                  exit 1
  
                 else
  
                if `${svn_adm_cmd} create ${svn_root_home}/${svn_repos}` ; then
                       echo "Repositorio ${svn_repos}, criado com sucesso!!"
                              else
                             echo "Erro na criacao do repositorio  ${svn_repos}"
                            exit 1
                   fi
          fi
  # Mudando as permissoes de dav lock e db
  
  echo "Mudando as permissoes de dav, lock e db"
  
  chmod g+w  ${svn_root_home}/${svn_repos}/dav  ${svn_root_home}/${svn_repos}/locks  ${svn_root_home}/${svn_repos}/db
  chmod g+s  ${svn_root_home}/${svn_repos}/dav  ${svn_root_home}/${svn_repos}/locks  ${svn_root_home}/${svn_repos}/db
  
  chown -R ${apache_user}:${apache_group} ${svn_root_home}/${svn_repos}/dav
  chown -R ${apache_user}:${apache_group} ${svn_root_home}/${svn_repos}/locks
  chown -R ${apache_user}:${apache_group} ${svn_root_home}/${svn_repos}/db
  
  touch ${svn_access_file}/${svn_repos}
  
  sleep 1
  
  # Imprimindo a saida para o Apache
  cat << EOF > $svn_tmp
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>###
  #   Projeto ${svn_repos}
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>###
  <Location ${svn_web_page}/${svn_repos}>
    DAV svn
      SVNPath ${svn_root_home}/${svn_repos}
        AuthType Basic
  AuthName "${svn_repos} em ${nome_empresa} "
    AuthUserFile ${svn_pass}
      AuthzSVNAccessFile ${svn_access_file}/${svn_repos}
        Require valid-user
  Allow from all
  </Location>
  EOF
  
  echo "Adicione as linhas abaixo no arquivo do apache"
  echo " "
  cat  $svn_tmp
  
  
  }
  
  usage(){
         echo "$(basename $0) opcoes"
        echo "Opcoes"
       echo "--create  : Cria um repositorio"
              echo "--help    : Imprime esta ajuda"
      }
  
      # Main Program
  
      if [ $(id -u) -eq 0 ];then
             if [ $# -eq 0 ]; then
                    usage
                   else
                  case $1 in
                 --create) create_svn;;
                --help) usage;;
               *) echo "Parametro $1, desconhecido";;
                      esac
             fi
            else
           echo "Voce nao e' o root"
          exit 1
  fi


Veja a relação completa dos artigos de Kaio Rafael

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script