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.
https://github.com/EasterEggo/shScripts
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.
https://github.com/EasterEggo/shConfigScripts
Configurações
https://github.com/EasterEggo/shConfigs
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