Executando verificação de segurança...
9

Automatizando seu trabalho com scripts simples no seu ubuntu

Pequena introdução

Fala pessoal, eu trabalho como desenvolvedor numa pequena startup e nela eu trabalho em diversos projetos para clientes/empresas diferentes, algumas tem um próprio fluxo de auditoria que exige que os commits sejam feitos por um usuário específico, por isso sempre que eu troco de projeto eu tenho que configurar o meu git com o usuário daquele projeto, como isso se tornou muito repetitivo eu criei uns scripts simples, são bem simples mesmo mas pode te dar inspirações para vocês fazerem coisas mais complexas de acordo com a necessidade.

O problema

Sempre que eu mudava de projeto eu tinha que rodar os seguintes comandos:
git config --global user.name "usuario do projeto x"
git config --global user.email "email do projeto x"

Ai que preguiça kkkkkkkkk
É que eu nem sei de cor cada user sabe? Eu sempre tinha que verificar pra não fazer errado.
E como vocês devem saber, tudo oq der pra automatizar o dev vai automatizar pq temos preguiça de fazer coisas repetitivas kkkkkkkk

Então o que eu fiz?

A solução

  • No meu diretório raiz eu criei um arquivo chamado:
    personal-setup.sh
  • E criei um arquivo pra cada projeto, exemplo:
    projetox-setup.sh
    Você pode abrir o aquivo em qualquer editor de texto que referir, ou até mesmo pelo terminal para seguir os próximos passos, eu usei o editor de textos do próprio ubuntu
  • Dentro do arquivo eu escrevi o seguinte:
#!/bin/bash
git config --global user.name "usuario-projeto-x"
git config --global user.email "email-projeto-x"
echo "setup git env to projeto-x successfully"
  • A primeira linha serve para especificar qual shell irá executar o script;
  • as seguintes estão os comandos que eu quero executar e
  • a ultima serve pra imprimir na tela uma mensagem de sucesso

Depois disso é necessário dar permissão de execução ao seu script

  • Abra o seu terminal no diretório em que seu arquivo foi salvo e rode o comando:
    chmod a+x nome-do-arquivo.sh
    A partir de agora voce pode rodar o script passando o seu caminho da seguinte forma:
    ./nome-do-arquivo.sh
    "./" porque no momento nós estamos no mesmo diretório em que o script se encontra
    Se você estiver em outro diretório você precisa passar o caminho até onde se encontra o script
    Foi por isso que eu pedi que o script fosse criado na raiz, porque pelo menos no ubuntu,o sinal "~" me leva diretamente para a raiz, então onde quer que eu esteja eu posso rodar simplesmente o comando: ~/nome-do-arquivo.sh que o script vai ser executado.

No entanto, ainda é possivel adicionar o script a algum diretório presente na variável PATH, dessa forma você poderá executar o comando de qualquer lugar que quiser, mas como o meu script é muito simples eu não achei necessário fazer isso, mas fica ai a dica pra quem quiser se aprofundar.

Vou deixar o link de uma playlist de videos para quem quiser aprender mais sobre isso, espero ter ajudado, desculpem os erros de português e fiquem à vontade para corrigir possíveis equívocos meus ou para complementar o conteúdo. Até mais! ;)

Carregando publicação patrocinada...
5

Massa demais! Esses scripts podem ajudar muito mesmo.

Tenho uma dica tbm de outra forma para lidar com vários usuários. No meu caso tenho o meu pessoal e o da empresa, e sempre separo os projeto em pastas diferentes.

Uso o .gitconfig na pasta do usuário (~) fica assim:

[user]
	name = ErickCReis
	email = [email pessoal]

[includeIf "gitdir:~/projetos_da_empresa/"]
	path = ~/projetos_da_empresa/.gitconfig

E na pasta ~/projetos_da_empresa, adiciono um novo .gitconfig

[user]
   name = Erick Reis
   email = [email da empresa]

Dessa forma não preciso me preocupar com o usuário, é só usar a pasta certa.

2
2

Publicação sensacional meu caro! Em paralelo, eu não sei se resolve o mesmo problema (ou se complementa), mas eu já tive que precisar de suas chaves privadas para dois projetos diferentes. E procurando uma forma de fazer isso automaticamente foi definir Hosts diferentes e específicos para cada projeto dentro do arquivo ~/.ssh/config, por exemplo:

# Default GitHub
# Usado para qualquer outro projeto genérico no Github.

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/chave-generica



# Projeto Específico
# Especificando a URL de cada projeto e usando
# uma chave privada específica.

Host github.com-projeto-especifico
  HostName github.com
  User git
  IdentityFile ~/.ssh/chave-projeto-especifico

Como faz muito tempo que configurei isso, eu não me recordo se ele escolhe o user.name e user.email automaticamente, mas eu acho que ele usa o que foi configurado pelo menos uma vez onde está o diretório .git, por isso do complemento a sua publicação 🤝

Então se você estiver procurando como configurar duas chaves privadas para repositórios diferentes no GitHub (ou outros hosts), esta é uma solução automática 👍

2