Awesome
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
<img src="https://github.com/ray-g/devstrap/blob/master/docs/snapshots/package_box.PNG" width="600" height="400">Installing Result
<img src="https://github.com/ray-g/devstrap/blob/master/docs/snapshots/installing.PNG" width="600" height="400">Sample UI with Tmux
<img src="https://github.com/ray-g/devstrap/blob/master/docs/snapshots/layout.PNG" width="600" height="400">Git Log
<img src="https://github.com/ray-g/devstrap/blob/master/docs/snapshots/git_log.PNG" width="600" height="400">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 = john.doe@example.com
signingkey = XXXXXXXX
Acknowledgements
Inspiration and code was taken from many sources, including:
License
The code is available under the MIT License