devstrap
devstrap copied to clipboard
Bootstrap your development computer quickly. One step to install packages and dotfiles. Fully Supports Ubuntu now.
DevStrap
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. :smile:
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.
Quick Start
git clone https://github.com/ray-g/devstrap.git ~/.devstrap
~/.devstrap/install.sh
Snapshots
Package Select Dialog
Installing Result
Sample UI with Tmux
Git Log
Command Line Options
./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
Customize
The dotfiles can be easily extended to suit additional
local requirements by using the following files:
~/.zshrc.local
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
~/.zshrc.theme.local
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
~/.vimrc.local
The ~/.vimrc.local file will be automatically sourced after
~/.vimrc, thus, allowing its content to add or overwrite the
settings from ~/.vimrc.
~/.gitconfig
The ~/.gitconfig file will automatically included ~/.gitconfig.devstrap first,
which contains a set of git configs out of the box.
Then any configurations can be written here ~/.gitconfig, thus, allowing its
content to overwrite or add to the existing git configurations without touch the devstrap git repo.
Note: Use ~/.gitconfig 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 = [email protected]
signingkey = XXXXXXXX
Acknowledgements
Inspiration and code was taken from many sources, including:
License
The code is available under the MIT License