Add bruise to the system
This commit is contained in:
parent
a4dc5fabf5
commit
c1d0b9405a
@ -7,3 +7,8 @@
|
|||||||
autostash = true
|
autostash = true
|
||||||
[core]
|
[core]
|
||||||
editor = vim
|
editor = vim
|
||||||
|
[filter "lfs"]
|
||||||
|
required = true
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
process = git-lfs filter-process
|
||||||
|
@ -9,6 +9,8 @@ export EXTRA_DIR
|
|||||||
|
|
||||||
[ -d "$DOTFILES_DIR/.git" ] && git --work-tree="$DOTFILES_DIR" --git-dir="$DOTFILES_DIR/.git" pull origin master
|
[ -d "$DOTFILES_DIR/.git" ] && git --work-tree="$DOTFILES_DIR" --git-dir="$DOTFILES_DIR/.git" pull origin master
|
||||||
|
|
||||||
|
#local tools
|
||||||
|
mkdir -p ~/apps
|
||||||
#vim backup folders
|
#vim backup folders
|
||||||
mkdir -p ~/.vim/{backup_files,swap_files,undo_files}
|
mkdir -p ~/.vim/{backup_files,swap_files,undo_files}
|
||||||
#install vundle
|
#install vundle
|
||||||
@ -21,6 +23,7 @@ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
|
|||||||
ln -sfv ~/dotfiles ~/.dotfiles
|
ln -sfv ~/dotfiles ~/.dotfiles
|
||||||
#ln -sfv "$DOTFILES_DIR/run/.bash_profile" ~
|
#ln -sfv "$DOTFILES_DIR/run/.bash_profile" ~
|
||||||
ln -sfv "$DOTFILES_DIR/run/.bashrc" ~
|
ln -sfv "$DOTFILES_DIR/run/.bashrc" ~
|
||||||
|
ln -sfv "$DOTFILES_DIR/run/bruise" ~/apps/bruise
|
||||||
ln -sfv "$DOTFILES_DIR/git/.gitconfig" ~
|
ln -sfv "$DOTFILES_DIR/git/.gitconfig" ~
|
||||||
ln -sfv "$DOTFILES_DIR/system/.vimrc" ~
|
ln -sfv "$DOTFILES_DIR/system/.vimrc" ~
|
||||||
ln -sfv "$DOTFILES_DIR/system/.dir_colors" ~
|
ln -sfv "$DOTFILES_DIR/system/.dir_colors" ~
|
||||||
|
@ -183,3 +183,4 @@ setxkbmap dvorak
|
|||||||
export PYENV_ROOT="$HOME/.pyenv"
|
export PYENV_ROOT="$HOME/.pyenv"
|
||||||
export PATH="$PYENV_ROOT/bin:$PATH"
|
export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
eval "$(pyenv init -)"
|
eval "$(pyenv init -)"
|
||||||
|
source ~/apps/bruise
|
||||||
|
144
run/bruise
Normal file
144
run/bruise
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# tabstop: 4
|
||||||
|
_VENV_BASE=$HOME/.venvs
|
||||||
|
## get the name of the branch, within the following revision control systems
|
||||||
|
function __fetch_repo_details() {
|
||||||
|
if [ -d ".git" ]; then
|
||||||
|
BRANCHNAME=`git rev-parse --abbrev-ref HEAD`
|
||||||
|
# create an SSH wrapper if the tree we're in is "special"
|
||||||
|
# then use that special wrapper
|
||||||
|
BBNAME=`cat .git/config|grep bitbucket|cut -d "@" -f 2|cut -d "." -f 1`
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
if [ -f "~/bin/${BBNAME}bitbucketwrapper.sh" ]; then
|
||||||
|
GIT_SSH="~/bin/${BBNAME}bitbucketwrapper.sh"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [ -d ".hg" ]; then
|
||||||
|
BRANCHNAME=`hg branch`
|
||||||
|
elif [ -d ".bzr" ]; then
|
||||||
|
BRANCHNAME=`cat .bzr/branch/branch.conf|awk -F/ '{print $(NF-1)}'`
|
||||||
|
fi
|
||||||
|
if [ -z $BRANCHNAME ]; then
|
||||||
|
return
|
||||||
|
else
|
||||||
|
REPONAME=`basename "$PWD"`
|
||||||
|
fi
|
||||||
|
# figure out our virtual env type
|
||||||
|
if [ -f requirements.txt ]; then
|
||||||
|
VENV_TYPE="python"
|
||||||
|
_VENV_ROOT=$_VENV_BASE/python
|
||||||
|
fi
|
||||||
|
if [ ! -d $_VENV_ROOT ]; then
|
||||||
|
mkdir -p $_VENV_ROOT
|
||||||
|
fi
|
||||||
|
# pyenv users get an environment prefixed with python version
|
||||||
|
if [ -f .python-version ]; then
|
||||||
|
PYTHON_VERSION=`cat .python-version`
|
||||||
|
VENV_NAME=$PYTHON_VERSION.$REPONAME.$BRANCHNAME
|
||||||
|
else
|
||||||
|
VENV_NAME=$REPONAME.$BRANCHNAME
|
||||||
|
fi
|
||||||
|
VENV_PATH=$_VENV_ROOT/$VENV_NAME
|
||||||
|
}
|
||||||
|
# create the pythonbrew venv combination
|
||||||
|
# if there's a requirements.txt we'll pip that puppy
|
||||||
|
function bruisemake() {
|
||||||
|
if [ ! -z $2 ]; then
|
||||||
|
export PATH=$2:$PATH
|
||||||
|
fi
|
||||||
|
if [ -z $VENV_TYPE ]; then
|
||||||
|
echo "You are not in a repository root"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if [ $VENV_TYPE == "python" ]; then
|
||||||
|
if [ ! -z $1 ]; then
|
||||||
|
VENV_PATH=$_VENV_BASE/python/$1
|
||||||
|
fi
|
||||||
|
if [ ! -d $VENV_PATH ]; then
|
||||||
|
virtualenv --no-site-packages $VENV_PATH
|
||||||
|
fi
|
||||||
|
source $VENV_PATH/bin/activate
|
||||||
|
pip install -r requirements.txt
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function __bruise() {
|
||||||
|
# pyenv support or not ;)
|
||||||
|
if [ -z $PYTHON_VERSION ]; then
|
||||||
|
VENV_PREFIX="${PYTHON_VERSION}"
|
||||||
|
else
|
||||||
|
VENV_PREFIX="${PYTHON_VERSION}."
|
||||||
|
fi
|
||||||
|
# if for some reason we're testing in a local venv, it wins
|
||||||
|
if [ -d `pwd`/venv ]; then
|
||||||
|
BRUISE_DIR=`pwd`/venv
|
||||||
|
else
|
||||||
|
bruisebase="${_VENV_ROOT}/${VENV_PREFIX}${REPONAME}"
|
||||||
|
if [ -d ${bruisebase}.${BRANCHNAME} ]; then
|
||||||
|
BRUISE_DIR=${bruisebase}.${BRANCHNAME}
|
||||||
|
elif [ -d ${bruisebase}.master ]; then
|
||||||
|
BRUISE_DIR=${bruisebase}.master
|
||||||
|
elif [ -d ${bruisebase} ]; then
|
||||||
|
BRUISE_DIR=${bruisebase}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -f .python-version ]; then
|
||||||
|
pyenv versions|grep `cat .python-version`
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Looks like you need pyenv to install your version, I'll go do that now."
|
||||||
|
pyenv install `cat .python-version`
|
||||||
|
pyenv rehash
|
||||||
|
pip install virtualenv
|
||||||
|
cd .
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -z $BRUISE_DIR ]; then
|
||||||
|
echo "No environment exists, try running bruisemake"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if [ $VENV_TYPE == "python" ]; then
|
||||||
|
echo "Environment loaded from ${BRUISE_DIR}"
|
||||||
|
source $BRUISE_DIR/bin/activate
|
||||||
|
fi
|
||||||
|
# todo, compare modified times on requirements.txt and the $VENV_PATH
|
||||||
|
if [ requirements.txt -nt $BRUISE_DIR ]; then
|
||||||
|
pip install -r requirements.txt
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function bruiselist() {
|
||||||
|
for i in `ls $_VENV_BASE`; do
|
||||||
|
ls $_VENV_BASE/$i
|
||||||
|
done
|
||||||
|
}
|
||||||
|
function bruiseuse() {
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
__bruise
|
||||||
|
else
|
||||||
|
source $_VENV_BASE/python/$1/bin/activate
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function bruisedelete() {
|
||||||
|
for i in $*; do
|
||||||
|
_bruisedelete $i
|
||||||
|
done
|
||||||
|
}
|
||||||
|
function _bruisedelete() {
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
echo "bruisedelete bruise_to_delete"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
for i in `ls $_VENV_BASE`; do
|
||||||
|
envs=`ls $_VENV_BASE/$i`
|
||||||
|
for e in $envs; do
|
||||||
|
if [ "X$e" == "X$1" ]; then
|
||||||
|
rm -rf $_VENV_BASE/$i/$e
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
cd() {
|
||||||
|
builtin cd "$@"
|
||||||
|
__fetch_repo_details
|
||||||
|
if [ ! -z $VENV_TYPE ]; then
|
||||||
|
__bruise
|
||||||
|
fi
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user