This repository contains various configuration file and scripts for quick setup of a working environment.
Ideally, bootstrap configurations should be idempotent. That is, the installer should be able to be run multiple times without causing any problems. This makes a lot of things easier to do (in particular, syncing updates between machines becomes really easy).
Generated with DocToc
Last Update: 2024-06-17
- Quick setups
- Post install actions
- Overview of this configuration files and scripts
- Development
- Reporting problems and issues
Important
You need to have PyYAML
installed before trying to install profile or configuration.
pip install pyyaml
git clone https://github.com/IlyaKisil/bootstrap-ik1614.git
cd bootstrap-ik1614
# Apply profile, i.e. a collection of configs
./install-profile.sh default-cli
# Apply selected configs
./install-config.sh git tmux zsh sh-aliases bin
Install whatever versions of Python you need with pyenv
pyenv install 3.9.4
pyenv global 3.9.4
Important
NVM is not imported by default because it increases shell start up time. It is likely
that you would need to comment out NODE_VERSION
env variable in the ~/.zshrc-local
.
In general, see ~/.zshrc
for more info.
nvm install --lts --default
Useful npm
packages
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
Check health and adjust accordingly.
nvim -c ':checkhealth'
For example, you might need to install missing providers
pip install pynvim
nvm install node
npm install -g neovim
gcloud init ...
gcloud components install cloud_sql_proxy
gcloud auth application-default login
Testing out new configuration can easily be done within Docker. In this way, you don't risk of accidentally overriding your existing dotfiles of configs.
make test-install-config
# or
make test-install-profile
Important
Some of the configs are git submodules, i.e. tpm
, oh-my-zsh
. However, we don't want
our install bash scripts, i.e. install-profile
, install-config
, to pull/update
them as a default behaviour, since we don't want to overload different environments.
Thus, this should be manged as a stand-alone task within shell
directive of a config.
Please use one of these forms which supports markdown
text
formatting. It would also be helpful if you include as much relevant information as
possible. This could include screenshots, code snippets etc.