98 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
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
 | 
						|
}
 |