Add bruise and bits

This commit is contained in:
Alexander Hosking 2017-10-23 09:36:40 -04:00
commit 75ceff32a7
6 changed files with 176 additions and 3 deletions

2
.fehbg
View File

@ -1,2 +1,2 @@
#!/bin/sh
feh --randomize --recursive --bg-scale ~/wallpaper/wallpaper
feh --bg-scale --no-fehbg --recursive --randomize ~/wallpaper/wallpaper

View File

@ -14,7 +14,7 @@ exec "setxkbmap dvorak"
exec --no-startup-id ~/.fehbg
exec /home/ahosking/.screenlayout/home_desktop.sh
exec --no-startup-id nm-applet
exec --no-startup-id owncloud
exec --no-startup-id nextcloud
exec --no-startup-id insync start
set $mod Mod4

View File

@ -9,6 +9,12 @@ export EXTRA_DIR
[ -d "$DOTFILES_DIR/.git" ] && git --work-tree="$DOTFILES_DIR" --git-dir="$DOTFILES_DIR/.git" pull origin master
#local tools
mkdir -p ~/apps
### install packages
sudo apt-get install -y -f python-pip python-dev powerline
#vim backup folders
mkdir -p ~/.vim/{backup_files,swap_files,undo_files}
#install vundle
@ -23,6 +29,7 @@ ln -sfv ~/dotfiles ~/.dotfiles
ln -sfv "$DOTFILES_DIR/run/.profile" ~
ln -sfv "$DOTFILES_DIR/run/.xprofile" ~
ln -sfv "$DOTFILES_DIR/run/.bashrc" ~
ln -sfv "$DOTFILES_DIR/run/bruise" ~/apps/bruise
ln -sfv "$DOTFILES_DIR/git/.gitconfig" ~
ln -sfv "$DOTFILES_DIR/system/.vimrc" ~
ln -sfv "$DOTFILES_DIR/system/.dir_colors" ~

View File

@ -183,6 +183,9 @@ setxkbmap dvorak
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
source ~/apps/bruise
export PATH="$PATH:$HOME/.local/bin"
export PATH="$PATH:/opt/trello:/opt/pycharm/bin"
export XDG_CURRENT_DESKTOP=GNOME
alias nemo='nemo --no-desktop'

163
system/.bruise Executable file
View File

@ -0,0 +1,163 @@
#!/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 bruise3make() {
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 -p python3 --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
}

View File

@ -27,7 +27,7 @@ set ruler " Always show info along bottom.
set autoindent " auto-indent
set tabstop=4 " tab spacing
set softtabstop=4 " unify
set shiftwidth=4 " indent/outdent by 4 columns
set shiftwidth=2 " indent/outdent by 2 columns
set shiftround " always indent/outdent to the nearest tabstop
set expandtab " use spaces instead of tabs
set smarttab " use tabs at the start of a line, spaces elsewhere