.bashrc está causando falha no git push

0

Estou tentando enviar código usando o git para meu servidor remoto, mas recebo o erro:

fatal: protocol error: bad line length character:
  8

Eu pesquisei esse bug e o arquivo .bashrc que ecoa uma tela de boas-vindas está causando esse erro. O que eu gostaria de fazer é determinar se esse é um push do git e NÃO exibir a tela de boas-vindas ou apenas exibir a tela ao efetuar login no SSH sem nenhum parâmetro de diretório:

ssh [email protected]:/deployment/bare-git-repo

Aqui estão as linhas relevantes em .bashrc :

if [ -e ./.doc ]
then
    cat ./.doc
    pm2 list
fi

Obrigado antecipadamente!

    
por mwieczorek 22.06.2018 / 13:54

2 respostas

2

Eu não acho que exista algo específico para git push ganchos no servidor, que você poderia usar, mas você pode verificar se você está enviando para um terminal:

if [ -t 1 ] && [ -e ./.doc ]; then
    cat ./.doc
    pm2 list
fi

Isso lidará com vários outros casos em que exibir o conteúdo ./.doc não tem muita utilidade e pode causar problemas.

    
por 22.06.2018 / 14:39
1

Eu suspeito que o que você realmente quer fazer é impedir a execução de coisas que não estão sendo executadas em um shell não interativo da execução.

Uma tática comum para isso é verificar se stdin não está anexado a um terminal via [[ ! -t 1 ]] , ou verificar se o processo bash não está marcado como interativo via [[ $- != *i* ]] . Se um desses casos de falha for avaliado como verdadeiro, nada mais em seu bashrc deverá ser executado, e você deverá retornar mais cedo.

    
por 22.06.2018 / 15:23

Tags