#! /bin/sh # # .functions # Functions for interactive shells # proj() { # Ensure we have an argument if [ -z ${1+x} ]; then echo "proj: requires argument" return 1 fi projname="${1//[^ a-zA-Z0-9]/}" projdir="$HOME/Projects/$projname" # Ensure we have a ~/Projects directory mkdir -p "$HOME/Projects" > /dev/null 2>&1 # cd into the project or make it if necessary if [ -d "$projdir" ]; then # It exists echo "Going to existing project \"$projname\"" cd "$projdir" else # It does not exist echo "Creating new project \"$projname\"" mkdir -p "$projdir" cd "$projdir" if which git > /dev/null 2>&1; then # Initialize git echo "Initializing git with .gitignore" git init > /dev/null 2>&1 echo '*.swp' > .gitignore git add .gitignore > /dev/null 2>&1 git commit -am "Create gitignore" > /dev/null 2>&1 git status fi fi }