Quickly add necessary packages and a set of dotfiles to bootstrap your development environments.
Currently it only supports Ubuntu now. But this framework should work on MacOS and any other Linux.
For platforms other than Ubuntu, install.sh --env-only
is an option
to skip package selection and installation, only setup the dotfiles.
PRs are welcome. 😄
The packages and settings are based on my personal favorite,
but they are customizable during installation via an
interactive whiptail
dialog.
And some dotfiles are also custmizable after installation. Details are here ~/.zshrc.local, ~/.zshrc.theme.local, ~/.vimrc.local, ~/.gitconfig.local.
git clone https://github.com/ray-g/devstrap.git ~/.devstrap
~/.devstrap/install.sh
./install.sh -h
Usage: ./install.sh [options]
Options:
-h | --help print this help
-d | --debug enable debug mode
-r | --dryrun enable dryrun mode
--all-yes install all packages without selecting
-n | --sel-none select none packages in box
--env-only setup environments only
The dotfiles
can be easily extended to suit additional
local requirements by using the following files:
The ~/.zshrc.local
file will be automatically sourced after
all the other shell
related files, thus, allowing its content
to add to or overwrite the existing aliases, settings, PATH, etc.
Here is a very simple example of a ~/.zshrc.local
file:
#!/bin/bash
# Set local aliases.
alias starwars="telnet towel.blinkenlights.nl"
# Set PATH additions.
PATH="$PATH:$HOME/projects/bin"
export PATH
The ~/.zshrc.theme.local
file will be automatically sourced before
oh-my-zsh setting up theme.
Thus, allowing you to set your favorite oh-my-zsh
theme.
By default I have set it to a fence one ys
The ~/.vimrc.local
file will be automatically sourced after
~/.vimrc
, thus, allowing its content to add or overwrite the
settings from ~/.vimrc
.
The ~/.gitconfig.local
file will be automatically included
after the configurations from ~/.gitconfig
, thus, allowing its
content to overwrite or add to the existing git
configurations.
Note: Use ~/.gitconfig.local
to store sensitive information
such as the git
user credentials, e.g.:
[commit]
# Sign commits using GPG.
# https://help.github.com/articles/signing-commits-using-gpg/
gpgsign = true
[user]
name = John Doe
email = john.doe@example.com
signingkey = XXXXXXXX
Inspiration and code was taken from many sources, including:
The code is available under the MIT License