Scripts/ssh/mantis/subversion

1. Scripts/ssh/mantis/subversion

Cássio Maciel
cassiom

(usa Ubuntu)

Enviado em 29/06/2012 - 09:46h

Bom dia, sou novo no linux e acabei pegando um projeto na empresa que preciso do seguinte: possuo dois servidores, um Linux contendo o subversion e outro Windows contendo o Mantis.OK...
Preciso que quando um usuário dê um commit este commit atualize automaticamente o mantis, mudando o status de sua Issue e adicionando o comentário a ela.

Tenho praticamente tudo pronto, uso o mobassh na maquina windows, e já consigo acessa-la pela maquina linux pelo ssh client, e tenho criada na maquina Linux uma partição da maquina windows onde posso acessar/criar arquivos. Bem, o processo seria o seguinte:

1-usuário adiciona/modifica um arquivo
2-usuário da o commit
3-commit é feito
4-subversion chama o script em sua pasta hooks post-commit
5-post-commit pega os dados do commit e cria um arquivo txt na partição compartilhada com o windows com os dados do commit.
6-post-commit executa outro script batizado de Loginssh
7-Loginssh se conecta automaticamente com a maquina windows através do ssh, caminha até um diretório e executa um script.bat
8-Script.bat que contem caminho do php do windows + caminho do .php a ser executado para alterar o mantis + caminho do arquivo criado pelo post-commit no passo 5

Bem, isso na minha cabeça funciona lindamente, acontece que, realmente funciona, só que separadamente, o post-commit cria o arquivo txt, e o Loginssh conecta e a alteração do mantis é feita, mas isso só acontece se eu executo diretamente o Loginssh, se ele é executado pelo post-commit, nada acontece, nem erros, commit é dado, arquivo é criado e ponto, nada mais.

segue os dois scripts:
POST-COMMIT:

#!/bin/bash
# Variaveis deste script
REPOS="$1"
REV="$2"

# Montando a mensagem de anotacao do mantis
log=$(/usr/bin/svnlook log -r $REV $REPOS)
autor=$(/usr/bin/svnlook author -r $REV $REPOS)
arqsChanged=$(/usr/bin/svnlook changed -r $REV $REPOS)
n=$'\n'

cd /var/pasta_windows/Apache2.2

cat | echo "Log: $log ---- Autor: $autor ---- Branch: $REPOS ##*/ ---- Revisao: $REV ---- Arquivos modificados: $arqsChanged" > file.txt

#executando o Loginssh
cd /var/svn
./Loginssh.sh
--------------------------------------

LOGINSSH:

#!/usr/bin/expect
set timeout 2

spawn ssh -l usuario ip
expect "%"
send "password\r"
expect "%"
send "cd C:/Arquivos\\ de\\ programas/Apache\\ Software\\ Foundation/Apache2.2/\r"
expect "%"
send "./script.bat\r"
expect eof

----------------------------------------

Por favor, ajudem! como sou novato em TUDO que estou fazendo aqui, provavelmente terão erros risórios ou a falta de coisas simples(assim espero).

Grato!


  


2. Re: Scripts/ssh/mantis/subversion

Cássio Maciel
cassiom

(usa Ubuntu)

Enviado em 29/06/2012 - 11:49h

A uma observação que esqueci, eu sei(ou suponho que sei) que o post-commit está executando o Loginssh, pois se altero o time out do código o post-commit demora mais(ou menos) para terminar...


3. Re: Scripts/ssh/mantis/subversion

Cássio Maciel
cassiom

(usa Ubuntu)

Enviado em 02/07/2012 - 10:04h

Alguém?!?!?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts