Executando o script bash com sudo, e git dentro dele

1

Eu tenho um script assim:

#!/bin/bash                                                              

cd /home/user/projekt
git config core.sparseCheckout true
git pull origin master
wait
rm -rf /var/www/project/{client,public}
cp -r /home/user/project-checkout/project/dist/* /var/www/project/
cd /var/www/project/
npm install

Como devo executar os comandos copy e npm install com direitos elevados, executo o script bash com sudo .

No entanto - git pull não funciona como sudo, pois lê os arquivos .gitconfig e .sshconfig dos usuários. A TI informa "Por favor, certifique-se de que você possui os direitos de acesso corretos" conforme esperado ao fazer um git sudo

Como resolver? Eu estava pensando em lado o script de-elivela direito para um elogio - possível?

Como bônus, como posso dizer ao meu script para prosseguir após a conclusão da linha 3?

    
por nottinhill 05.03.2015 / 00:38

2 respostas

2

Em vez de elevar, você poderia apenas sudo , quando necessário; então no seu script:

...
sudo cp ...
cd /var/www/project
sudo npm install

Você pode usar

set -e

no início do seu script para fazer com que qualquer erro pare o script, o que teria o efeito desejado na linha 3. Não sei por que você precisa do wait lá; git pull só retornará quando terminar de trabalhar.

    
por 05.03.2015 / 00:44
1

Confira essa essência, existem várias maneiras de fazer isso ... A primeira funcionou melhor quando eu tive esse mesmo problema. LINK

Você também pode adicionar o set -x para ver seu script em ação.

    
por 05.03.2015 / 01:04

Tags