🏩 $HOME
is where your dotfiles are
First step, clone this repo, because I'm lazy and these are my dotfiles, they need to be placed in ~/playground/dotfiles
$ git clone https://github.com/FabioAntunes/dotfiles.git ~/playground/dotfiles --recurse-submodules
Oh btw I'm using some git submodules.
$ cd ~/playground/dotfiles
$ bash init.sh
It will ask for your user and email to set your git global config. This will install everything in the Brewfile
which will take shit loads of time 🙅, it will also install nvm
and powerline fonts
.
After all this it will set 🐟 as your default shell, and it will start the init.fish
script
Some operations require sudo permissions, your password will be asked a couple of times and sent to a random server so I can take over all your data. 👌
After running both the init.sh
and init.fish
there will be a couple functions available globally.
This is the main function that allows us run all the commands related to dotfiles, it has autocompletion enabled just type yolo -
and press tab.
If no args are passed to the yolo
function, all the options will be executed in this order:
- create symlinks, any existing symlinks will be preserved.
- install fisher
- install vim plug Plugins
- install global npm packages
If we use the -f/--force
it will run all the options above, but won't preserve any symlinks
The next args allows you to run the function in a granular way, feel free to combine multiple args
-f/--force
- it will overwrite existing symlinks-s/--symlink
- create symlinks, this option will ignore already created symlinks. If a regular file already exists, it will be renamed aka backup file. Combine with the-f/--force
-n/--node
- install global packages.-m/--fisher
- install fisher and it's plugins.-v/--vimplug
- install vim and nvim Plugins.
At the end it will output all the symlinks created, any errors creating symlinks and any backup files created.
All the paths should direct you to the dotfiles! There's a post_exec
function inside the config.fish
, that listens for any brew install
and brew cask install
. Whenever that happens, a Brewfile is dumped.
After that a check on the git files is done, if the only file changed is the Brewfile, a commit is created and pushed automatically (new files are automatically ignored).
The message will be Updated Brewfile :beer:
. You can change this by setting $DOTFILES_MSG
to whatever you want.