Meu Script Auto Config

Introdução

Bom, recentemente eu tenho trocado de distros com muita frequência(oh shit, here we go again), mas como eu estava cansado de consultar meu arquivo de google docs com os programas que eu uso, eu resolvi criar o meu próprio script.

Primeiras Tentativas

O meu primeiro script, na verdade eram 3, um para “apt”, um para “pacman” e o outro para “dnf”, mas percebi que isso era ineficiente, queria algo mais automatizado, como ./install.sh único, então eu tive a ideia de usar “argumentos” no processo de instalação, então a segunda versão era basicamente um script cheio de variáveis e argumentos como ./install.sh -d, para dnf, e, perfeito, ele estava muito bom, mas depois de 2 semanas eu fui tentar modificá-lo e senti muita ineficiência nesse modelo, um script cheio de variáveis e muito confuso, foi então que eu tive a ideia de fazer um sistema que identificasse o sistema que eu estava, e encapsular todos os meus métodos de instalação dentro de funções, para ficar mais “clean” e para qualquer pessoa entender meu código, mas não sabia como, foi então que eu lembrei que o comando de instalação de cada distro ficava no diretório /bin, agora restava saber como eu procuraria o arquivo.
Apos algum tempo de pesquisa, eu descobri que uma estrutura condicional(if), junto com o argumento -e (provavelmente de “explore” ou algo do tipo) e o arquivo que eu queria (/bin/apt), eu conseguiria procurar o arquivo do package manager e instalar meus programas de acordo com ele, dito e feito, fiz o script e testei, funcionou bem em todas as distros que eu testei.
Depois de um tempo eu comecei a usar vim, emacs(post sobre emacs em breve) e oh my zsh, todos tem seus arquivos de configuração e então, para isso, eu precisaria criar a versão “final”.

Versão mais Atual

Nota: algumas coisas ainda estão por vir, como o método de instalação para “dnf” e “pacman”, um README para instalação e muitas outras coisas, portanto achei melhor considerar como uma versão beta, para caso você queira usar, estar ciente que muitas coisas vão mudar.

Nessa versão eu adotei a ideia de “multi-repo”, que na minha opinião, eh o melhor método para esse tipo de script, onde eu coloco a “instalação dos pacotes” em um repositório, minhas configurações em outro e etc.

Script principal

Bom, nesse script eu basicamente criei as funções com um sh + curl, que vai executar meus comandos sem precisar instalá-los, e mais algumas coisas que são globais, ou seja, não mudam de distro para distro, ele também contem os “curls” para minhas configurações.

Scripts de Configuração

Bom nesses scripts eu basicamente instalava algo como o oh my zsh e o doom emacs e movia meus arquivos de configuração para os seus respectivos lugares.

Configurações

Vim

Bom, nas configurações do meu vim, eu uso vimplug, nerdtree, dracula como tema, vim airline, vim fugitive etc.
o resultado final ficou assim:

Emacs

O melhor sistema operacional, um bom editor de texto, no emacs, eu uso principalmente o doom emacs, uma “distro” que funciona muito bem, com uma facilidade enorme de atalhos e plugins, cliente de email, agenda e muito mais, o resultado final ficou assim:

Oh my Zsh

No oh my zsh, eu uso o tema “spaceship”, um dos mais customizáveis e bonitos na minha opinião, fora plugins de autocomplete, sugestões e highlight de comandos, o resultado final ficou assim(o tema ainda não foi adicionado):

Fim

Muito obrigado por ouvir uma explicação tao longa sobre um simples script, me desculpe ter me estendido muito, mas talvez você tenha aprendido algo, como estruturas condicionais, um programa para “escrever” no terminal etc
Agradeceria o feedback de todos sobre esse post e sobre o script, se tiverem gostado, deem uma estrela no github, se tiver algo de errado abram um “issue” ou me envie um pull request no github, ficarei muito feliz em ver e responder, abraços.

Au Revoir

5 Curtidas

Parabéns pela iniciativa!

Também gosto de desenvolver meus próprios scripts para fins de aprendizagem.
Só uma contribuição:

Este -e verifica a existência de um arquivo/diretório/link simbólico. Para verificar além da existência se é exatamente algum dos tipos acima, pode-se usar no lugar do -e respectivamente -f/-d/-L.
Aqui tem mais detalhes e exemplos de uso do IF. Os exemplos que citei podem ser encontrados na parte que fala sobre " Operador para arquivos/diretórios".

1 Curtida

Muito interessante, obrigado pela contribuição! :clap:

Sim, esses scipts me ensinam muita coisa, fora que me poupam quase 2 horas hahaha

1 Curtida