I lost the count of how many times I had to setup my development environment over and over again. This is an exhausting process of configuring everything to my taste whenever I get I new computer at home or at work, or even when I decided to change operating systems. By the end of the day, I still need my tools to get my work done.
With that in mind, I ended up learning a little bit of shell script to automate this process without any dependencies.
How does it work?
It's a simple shell script, originally made for a Mac (Linux coming up), that uses cURL to downloaded itself and execute it. If you use Homebrew, it's the same install process.
You just need to run this command and it is smart enough to know if a tool or service is already installed on your computer. It also creates a backup of your dotfiles:
bash <(curl -s https://raw.githubusercontent.com/orafaelfragoso/dotfiles/master/install.sh)
What it installs?
This is the list of tools and programming languages it will install, based on my own personal taste:
- Command Line Tools
- Git (it will prompt you to generate ssh keys for Github and Bitbucket)
- ZSH (with oh-my-zsh)
- NodeJS (through ASDF)
- Spectacle App
The last step was supposed to copy my dotfiles and setup plugins and themes for tmux, vim and VSCode. But there is a lot to cover here which I am still automating. But the dotfiles are downloaded by the bash command, so I just copy them for now.
And I also made every install step as optional, to be as flexible as possible and the whole process took 15 minutes on a new Macbook Pro. Here it is:
I have plans of evolving this tool to not only be used as a setup tool but also as a backup tool. It still sucks whenever I make a change com a
.vimrc or any other file I also have to make the changes inside the project.
I'm really lazy, so I'm gonna automate every little thing.