if [[ "" == $SANDBOX_ROOT ]]; then export SANDBOX_ROOT=$HOME/Sandbox fi sandbox() { local usage="usage: sandbox {create,destroy,enable,disable} [name]" if [[ "" == $1 ]]; then echo $usage return 1 fi case $1 in create) if [[ "" == $2 ]]; then echo $usage return 1 fi local sandbox=$SANDBOX_ROOT/$2 if [[ -d $sandbox ]]; then echo "Sandbox '$2' already exists" return 2 fi mkdir -p $sandbox &> /dev/null begin=$PWD cd $sandbox echo "SANDBOX_HOME=\$(dirname -- "\$0:a")" >> .enter echo "SANDBOX_NAME=$2" >> .enter echo "unset SANDBOX_NAME" >> .exit echo "unset SANDBOX_HOME" >> .exit git init &> /dev/null cd $begin cd $sandbox ;; rename) if [[ "" == $2 || "" == $3 ]]; then echo $usage return 1 fi mv $SANDBOX_ROOT/$2 $SANDBOX_ROOT/$3 sed -i "" "s/$2/$3/g" $SANDBOX_ROOT/$3/.env ;; destroy) if [[ "" == $2 ]]; then echo $usage return 1 fi local sandbox=$SANDBOX_ROOT/$2 if [[ ! -d $sandbox ]]; then echo "Sandbox '$2' does not exist" return 2 fi cd - if [[ "${SANDBOX_ROOT##$PWD}" = "${SANDBOX_ROOT}" ]]; then cd $HOME fi rm -rf $sandbox ;; list) /bin/ls -1 $SANDBOX_ROOT | less -F -K -R -X ;; enable) if [[ "" == $2 ]]; then echo $usage return 1 fi local sandbox=$SANDBOX_ROOT/$2 if [[ ! -d $sandbox ]]; then echo "Sandbox '$2' does not exist" return 2 fi export SANDBOX_RETURN=$PWD cd $sandbox ;; disable) if [[ -z $SANDBOX_RETURN ]]; then echo "Sandbox is not currently active" return 2 fi cd $SANDBOX_RETURN unset $SANDBOX_RETURN ;; esac }