A collection of tools, configuration files, notes, and scripts.
Used to manage development environment(s) and tools across hardware, operating systems, containers, and virtual machines.
On a fresh machine, clone the repo and run the install.sh script to configure the local environment. The script is a thin wrapper around an ansible playbook that targets localhost.
Note
Probably don't run the install script directly, it does a lot of things.
While this was all tested against a macos host, most often I run some set of the ansible roles against a virtual machine or docker container remotely via ssh.
The devbox-playbook.yml file creates or starts a multipass VM and runs the ansible playbook on it. This has only been tested on multipass running on a macos host.
CTRL+ff- fuzzy search for filesgaa- add all files to gitga- add files to git interactively withfzfgbb- interactive branch selection withfzfgcmsg <message>- commit with a messagegcm- checkout main branchgcp- interactive cherry-pick withfzfgd- interactive git diff withfzfgdoof- add all and amend with no messagegll- count lines in staged git diffglo- interactive git log withfzfgoops- reset last commit softgss- interactive stash selection withfzfgup- pull with rebasenett- show open ports
bat- A modern replacement forcateza- A modern replacement forlsfzf- A fuzzy finder for the command line
base
- Determines the operating system and package manager.
- Install packages (apt-get on debian/ubuntu) (brew on darwin/macos).
zsh:
- Install and configure of
zshandoh-my-zsh, plugins, and utilities. - Install and configure
powerlevel10kfor prompt styling.
fzf:
- Install
fzffrom git repository.
dotfiles:
- Symlink shell configuration files in
config_files/to$HOME.
Important
The .zshrc configuration defines a keybinding override to use ^ff instead of ^t to trigger fzf from the command line.
multipass:
- Create or start a multipass VM and add it to the inventory.
docker:
- Install docker and add the current user to the docker group.
asdf:
- Install and configure
asdfand plugins.
Important
This is where installing different versions of languages and tools is managed.
For example, golang, python, terraform, etc...