É possível definir os usuários .gitconfig (para git config --global) dinamicamente?

2

Eu tenho o problema, que nós logamos nos sistemas como nossos próprios usuários johndoe e então temos que fazer um sudo su - root para poder fazer tarefas administrativas. Nós temos os arquivos de configuração do sistema em um repositório git (que torna tudo melhor). Mas agora eu perco as configurações no arquivo do usuário ( johndoe ) /home/johndoe/.gitconfig . Eu tentei definir a variável $GIT_CONFIG que funciona, mas isso é apenas para definir a configuração do repositório, não a configuração global e, portanto, as variáveis importantes para mim não serão definidas:

$ sudo su - root
Hello johndoe. Switching your .gitconfig to /home/johndoe/.gitconfig
# git config --get user.name
John Doe
# git config --get user.email
[email protected]
# git config --global --get user.name
# git config --global --get user.email
#

Este é o truque que tentei:

$ cat .bashrc
--- snip ---

# load git config of user
LOGINUSER=$(who am i|awk '{print $1}')
if [ "$LOGINUSER" != "root" ]; then
    GITCFGFILE="/home/$LOGINUSER/.gitconfig"
    if [ -f $GITCFGFILE ]; then
        echo "Hello $LOGINUSER. Switching your .gitconfig to $GITCFGFILE"
        export GIT_CONFIG=$GITCFGFILE
    fi
fi

Existe uma maneira de definir o caminho para a configuração global do git?

    
por oXiVanisher 19.09.2014 / 08:40

2 respostas

1

Para responder à minha pergunta: Não

Esta é a solução que acabei com: Eu adicionei um arquivo /etc/profile.d/gitsetup.sh com o seguinte conteúdo:

[ -z "$PS1" ] && return
[ -z "$BASH_VERSION" -o -z "$PS1" ] && return
CFGFILE="/home/$(who am i|awk '{ print $1 }')/.gitconfig"
[ $USER == "root" -a -f "$CFGFILE" -a -n "$CFGFILE" ] && cat $CFGFILE > $HOME/.gitconfig

Ele testa na linha um e dois para um shell interativo, lê o caminho .gitconfig de origem na linha três e substitui o arquivo de configuração roots se o arquivo de origem existir.

    
por 26.09.2014 / 09:22
0

Eu pulei todos os mesmos aros e encontrei o mesmo problema com as informações do usuário armazenadas em $HOME/.gitconfig não tendo contrapartes variáveis de ambiente para nossa versão do git.

Me deparei com uma situação que pode afetar você - o arquivo .gitconfig é atacado quando um segundo usuário é invocado - e minha própria solução é questionável o suficiente para mim (um usuário git newbie) que pode ser encontrada postada aqui:

Configuração dinâmica do usuário para git com script de wrapper?

    
por 13.04.2017 / 21:09

Tags