forked from colonelpanic/dotfiles
Update setup script, make do_the_brew bash compatible.
This commit is contained in:
parent
202b217520
commit
b165c4c4ac
41
bootstrap.sh
41
bootstrap.sh
@ -1,41 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
cd `dirname $BASH_SOURCE` && source resources/bootstrapping.sh
|
||||
DOTFILES_DIRECTORY="$(dotfiles_abspath)/dotfiles"
|
||||
|
||||
|
||||
function symlink_dotfiles() {
|
||||
cd $DOTFILES_DIRECTORY
|
||||
[ -a ~/.dotfiles-backups ] && mv ~/.dotfiles-backups ~/.dotfiles-backups.old
|
||||
mkdir ~/.dotfiles-backups
|
||||
for filename in *; do
|
||||
local link_destination="$HOME/.$filename"
|
||||
local link_target=$(${readlink_command} -f $filename)
|
||||
echo "linking $link_destination to $link_target"
|
||||
# Using only test -e doesn't work here because it will return
|
||||
# false if the destination of the symbolic link at does not exist.
|
||||
test -e $link_destination || test -L $link_destination && mv $link_destination ~/.dotfiles-backups
|
||||
ln -si $link_target $link_destination
|
||||
done
|
||||
[ -a ~/.dotfiles-backups.old ] && mv ~/.dotfiles-backups.old ~/.dotfiles-backups/.dotfiles-backups
|
||||
}
|
||||
|
||||
|
||||
function parse_options() {
|
||||
while getopts "f" OPTCHAR; do
|
||||
case $optchar in
|
||||
f)
|
||||
symlink_dotfiles
|
||||
return
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
||||
|
||||
read -p "Symlinking files from $DOTFILES_DIRECTORY. This may overwrite existing files in your home directory. Do you wish to proceed? (y/n) " -n 1
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo
|
||||
symlink_dotfiles
|
||||
fi
|
||||
}
|
||||
|
||||
parse_options
|
@ -1,11 +1,13 @@
|
||||
function brew_install_items() {
|
||||
echo $@
|
||||
for package_install_string in $@;
|
||||
do
|
||||
package_args=$package_install_string
|
||||
if is_zsh;
|
||||
then
|
||||
# Horrible hack to induce word splitting.
|
||||
eval "package_args=($package_install_string)"
|
||||
fi
|
||||
brew install $package_args;
|
||||
brew link $package_args[1];
|
||||
done
|
||||
}
|
||||
|
||||
@ -18,68 +20,67 @@ function fix_brew_htop() {
|
||||
|
||||
function do_the_brew() {
|
||||
ESSENTIAL=(
|
||||
"emacs"
|
||||
"git"
|
||||
"tmux"
|
||||
"python --with-brewed-openssl"
|
||||
"htop"
|
||||
"greadlink"
|
||||
"vim --override-system-vi"
|
||||
"zsh"
|
||||
"make"
|
||||
"emacs" \
|
||||
"tmux" \
|
||||
"python --with-brewed-openssl" \
|
||||
"htop" \
|
||||
"greadlink" \
|
||||
"vim --override-system-vi" \
|
||||
"zsh" \
|
||||
"make" \
|
||||
)
|
||||
# `find`, `locate`, `updatedb`, and `xargs`, g-prefixed
|
||||
# core utilities (those that come with OS X are outdated)
|
||||
BASICS=(
|
||||
"findutils"
|
||||
"coreutils"
|
||||
"binutils"
|
||||
"diffutils"
|
||||
"ed --default-names"
|
||||
"gawk"
|
||||
"gnu-indent --default-names"
|
||||
"gnu-sed --default-names"
|
||||
"gnu-tar --default-names"
|
||||
"gnu-which --default-names"
|
||||
"gnutls --default-names"
|
||||
"grep --default-names"
|
||||
"gzip"
|
||||
"watch"
|
||||
"wdiff --with-gettext"
|
||||
"wget --enable-iri"
|
||||
"findutils" \
|
||||
"coreutils" \
|
||||
"binutils" \
|
||||
"diffutils" \
|
||||
"ed --default-names" \
|
||||
"gawk" \
|
||||
"gnu-indent --default-names" \
|
||||
"gnu-sed --default-names" \
|
||||
"gnu-tar --default-names" \
|
||||
"gnu-which --default-names" \
|
||||
"gnutls --default-names" \
|
||||
"grep --default-names" \
|
||||
"gzip" \
|
||||
"watch" \
|
||||
"wdiff --with-gettext" \
|
||||
"wget --enable-iri" \
|
||||
)
|
||||
SHOULD_INSTALL=(
|
||||
"nmap"
|
||||
"readline"
|
||||
"netcat"
|
||||
"reattach-to-user-namespace"
|
||||
"daemonize"
|
||||
"ngrep"
|
||||
"gist"
|
||||
"gawk"
|
||||
"pstree"
|
||||
"ack"
|
||||
"hub"
|
||||
"tig"
|
||||
"heroku"
|
||||
"scala"
|
||||
"sbt"
|
||||
"node"
|
||||
"npm"
|
||||
"nmap" \
|
||||
"readline" \
|
||||
"netcat" \
|
||||
"reattach-to-user-namespace" \
|
||||
"daemonize" \
|
||||
"ngrep" \
|
||||
"gist" \
|
||||
"gawk" \
|
||||
"pstree" \
|
||||
"ack" \
|
||||
"hub" \
|
||||
"tig" \
|
||||
"heroku" \
|
||||
"scala" \
|
||||
"sbt" \
|
||||
"node" \
|
||||
"npm" \
|
||||
)
|
||||
MISC=(
|
||||
"file-formula"
|
||||
"git"
|
||||
"less"
|
||||
"openssh --with-brewed-openssl"
|
||||
"perl518"
|
||||
"rsync"
|
||||
"svn"
|
||||
"unzip"
|
||||
"macvim --override-system-vim --custom-system-icons"
|
||||
MISC=("file-formula" \
|
||||
"less" \
|
||||
"openssh --with-brewed-openssl" \
|
||||
"perl518" \
|
||||
"rsync" \
|
||||
"svn" \
|
||||
"unzip" \
|
||||
"macvim --override-system-vim --custom-system-icons" \
|
||||
)
|
||||
|
||||
install_items=()
|
||||
OPTIND=1
|
||||
echo "${MISC[@]}"
|
||||
while getopts "uebsmah" OPTCHAR;
|
||||
do
|
||||
case $OPTCHAR in
|
||||
@ -103,7 +104,20 @@ function do_the_brew() {
|
||||
install_items=("${install_items[@]}" "${ESSENTIAL[@]}" "${BASICS[@]}" "${SHOULD_INSTALL[@]}" "${MISC[@]}")
|
||||
;;
|
||||
h)
|
||||
echo "Usage:
|
||||
do_the_brew_help
|
||||
return
|
||||
;;
|
||||
esac
|
||||
done
|
||||
echo "Installing the following packages:"
|
||||
for package_name in "${install_items[@]}"; do echo $package_name; done;
|
||||
brew update
|
||||
brew_install_items $install_items
|
||||
brew cleanup
|
||||
}
|
||||
|
||||
function do_the_brew_help() {
|
||||
echo "do_the_brew Usage:
|
||||
-a install all packages.
|
||||
-u upgrade brew packages.
|
||||
-e install essential packages
|
||||
@ -112,12 +126,4 @@ function do_the_brew() {
|
||||
-m install very non-essential packages.
|
||||
-h display this help message.
|
||||
"
|
||||
return
|
||||
esac
|
||||
done
|
||||
echo "Installing:"
|
||||
for package_name in $install_items; do echo $package_name; done;
|
||||
brew update
|
||||
brew_install_items $install_items
|
||||
brew cleanup
|
||||
}
|
||||
|
@ -1,2 +1,2 @@
|
||||
local dircolors_file="$HOME/.dircolors"
|
||||
dircolors_file="$HOME/.dircolors"
|
||||
test -r $dircolors_files && eval "$(dircolors $dircolors_file)"
|
||||
|
@ -1,9 +1,3 @@
|
||||
function dotfiles_abspath() {
|
||||
readlink_command='readlink'
|
||||
command -v greadlink > /dev/null && readlink_command="greadlink"
|
||||
echo "$(${readlink_command} -f "$BASH_SOURCE" | xargs dirname | xargs dirname)"
|
||||
}
|
||||
|
||||
function go2dotfiles() {
|
||||
cd $(dirname `readlink -f ~/.zshrc | xargs dirname`)
|
||||
}
|
||||
@ -42,6 +36,7 @@ function confirm() {
|
||||
|
||||
function get_cols() {
|
||||
FS=' '
|
||||
OPTIND=1
|
||||
while getopts "F:" OPTCHAR; do
|
||||
case $OPTCHAR in
|
||||
F)
|
||||
@ -129,6 +124,7 @@ function git_root() {
|
||||
function git_diff_replacing() {
|
||||
local original_sha='HEAD~1'
|
||||
local new_sha='HEAD'
|
||||
OPTIND=1
|
||||
while getopts "do:n:" OPTCHAR;
|
||||
do
|
||||
case $OPTCHAR in
|
||||
@ -154,6 +150,7 @@ function git_diff_replacing() {
|
||||
function git_reset_author() {
|
||||
local should_update_command=''
|
||||
local update_command=''
|
||||
OPTIND=1
|
||||
while getopts "a:e:A:E:h" OPTCHAR;
|
||||
do
|
||||
case $OPTCHAR in
|
||||
|
@ -1,6 +1,7 @@
|
||||
ESSENTIAL=(ipdb ipython virtualenv)
|
||||
FOR_EDITOR=(jedi pyflakes)
|
||||
USEFUL=(
|
||||
function install_python_packages() {
|
||||
ESSENTIAL=(ipdb ipython virtualenv)
|
||||
FOR_EDITOR=(jedi pyflakes)
|
||||
USEFUL=(
|
||||
Flask
|
||||
ddg
|
||||
ouimeaux
|
||||
@ -8,10 +9,8 @@ USEFUL=(
|
||||
simplejson
|
||||
tox
|
||||
numpy
|
||||
)
|
||||
|
||||
function install_python_packages() {
|
||||
sudo pip install $ESSENTIAL
|
||||
)
|
||||
OPTIND=1
|
||||
while getopts "uea" OPTCHAR;
|
||||
do
|
||||
case $OPTCHAR in
|
||||
@ -24,8 +23,18 @@ function install_python_packages() {
|
||||
a)
|
||||
sudo pip install $FOR_EDITOR
|
||||
sudo pip install $USEFUL
|
||||
install_pygame
|
||||
install_powerline
|
||||
;;
|
||||
h)
|
||||
echo "
|
||||
-u Install useful but non essential python.
|
||||
-e Install editor python packages.
|
||||
-a Install all python utilities."
|
||||
;;
|
||||
esac
|
||||
done
|
||||
sudo pip install $ESSENTIAL
|
||||
}
|
||||
|
||||
function install_pygame() {
|
||||
|
@ -1,5 +1,6 @@
|
||||
function make_me_synergy() {
|
||||
local new_host_name="$(echo $SSH_CONNECTION | get_cols 1)"
|
||||
OPTIND=1
|
||||
while getopts "h:" OPTCHAR; do
|
||||
case $OPTCHAR in
|
||||
h)
|
||||
|
@ -5,6 +5,6 @@ done
|
||||
alias srczsh="source ~/.zshrc"
|
||||
|
||||
# Online help.
|
||||
unalias run-help
|
||||
unalias run-help 2> /dev/null 1>/dev/null
|
||||
autoload run-help
|
||||
HELPDIR=/usr/local/share/zsh/helpfiles
|
||||
|
96
setup.sh
96
setup.sh
@ -1,33 +1,85 @@
|
||||
#!/usr/bin/env bash
|
||||
function setup() {
|
||||
cd `dirname $BASH_SOURCE` && source resources/bootstrapping.sh
|
||||
source dotfiles/lib/shellrc/functions.sh
|
||||
source dotfiles/lib/shellrc/brew.sh
|
||||
source dotfiles/lib/shellrc/python.sh
|
||||
cd `dirname $BASH_SOURCE` && source resources/bootstrapping.sh
|
||||
source dotfiles/lib/shellrc/functions.sh
|
||||
source dotfiles/lib/shellrc/brew.sh
|
||||
source dotfiles/lib/shellrc/python.sh
|
||||
DOTFILES_DIRECTORY="$(dotfiles_abspath)/dotfiles"
|
||||
|
||||
case `uname` in
|
||||
'Darwin')
|
||||
osx_setup
|
||||
;;
|
||||
'Linux')
|
||||
source resources/apt-get.sh
|
||||
;;
|
||||
esac
|
||||
|
||||
install_powerline
|
||||
source bootstrap.sh
|
||||
function symlink_dotfiles() {
|
||||
cd $DOTFILES_DIRECTORY
|
||||
[ -a ~/.dotfiles-backups ] && mv ~/.dotfiles-backups ~/.dotfiles-backups.old
|
||||
mkdir ~/.dotfiles-backups
|
||||
for filename in *; do
|
||||
local link_destination="$HOME/.$filename"
|
||||
local link_target=$(${readlink_command} -f $filename)
|
||||
echo "linking $link_destination to $link_target"
|
||||
# Using only test -e doesn't work here because it will return
|
||||
# false if the destination of the symbolic link at does not exist.
|
||||
test -e $link_destination || test -L $link_destination && mv $link_destination ~/.dotfiles-backups
|
||||
ln -si $link_target $link_destination
|
||||
done
|
||||
[ -a ~/.dotfiles-backups.old ] && mv ~/.dotfiles-backups.old ~/.dotfiles-backups/.dotfiles-backups
|
||||
}
|
||||
|
||||
|
||||
function osx_setup() {
|
||||
while getopts "uebsmaho" OPTCHAR;
|
||||
function symlink_dotfiles_prompt() {
|
||||
read -p "Symlinking files from $DOTFILES_DIRECTORY. This may overwrite existing files in your home directory. Do you wish to proceed? (y/n) " -n 1
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo
|
||||
symlink_dotfiles
|
||||
fi
|
||||
}
|
||||
|
||||
function setup_help() {
|
||||
echo "setup Usage:
|
||||
-a Install apt-get packages.
|
||||
-o Run OSX configuration commands.
|
||||
-s Symlink dotfiles to home directory.
|
||||
-b Install brew packages.
|
||||
-p Install python packages.
|
||||
-h display this help message."
|
||||
}
|
||||
|
||||
function setup() {
|
||||
if [[ $# -eq 0 ]] ; then
|
||||
setup_help
|
||||
exit 0
|
||||
fi
|
||||
while getopts "aosbp" OPTCHAR;
|
||||
do
|
||||
case $OPTCHAR in
|
||||
h)
|
||||
echo "brew options:"
|
||||
do_the_brew -h
|
||||
exit
|
||||
a)
|
||||
source resources/apt-get.sh
|
||||
;;
|
||||
b)
|
||||
do_the_brew_help
|
||||
read -p "Enter flags for brew package installation:
|
||||
"
|
||||
[[ $REPLY[0] != '-' ]] && REPLY="-$REPLY"
|
||||
do_the_brew $REPLY
|
||||
;;
|
||||
o)
|
||||
sudo -v
|
||||
source resources/osx.sh
|
||||
do_the_brew $@
|
||||
;;
|
||||
s)
|
||||
symlink_dotfiles_prompt
|
||||
;;
|
||||
p)
|
||||
install_python_packages -h
|
||||
read -p "Enter flags for python package installation"
|
||||
if [[ $REPLY[0] != '-' ]]; then
|
||||
REPLY="-$REPLY"
|
||||
fi
|
||||
install_python_packages $REPLY
|
||||
;;
|
||||
h)
|
||||
setup_help
|
||||
return
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
setup $@
|
||||
|
Loading…
Reference in New Issue
Block a user