Actually add sandbox plugin
This commit is contained in:
103
sandbox/sandbox.plugin.zsh
Normal file
103
sandbox/sandbox.plugin.zsh
Normal file
@@ -0,0 +1,103 @@
|
||||
if [[ "" == $SANDBOX_ENV_IN_FILE ]]; then
|
||||
export SANDBOX_ENV_IN_FILE=$AUTOENV_IN_FILE
|
||||
fi
|
||||
if [[ "" == $SANDBOX_ENV_OUT_FILE ]]; then
|
||||
export SANDBOX_ENV_OUT_FILE=$AUTOENV_OUT_FILE
|
||||
fi
|
||||
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")" >> $SANDBOX_ENV_IN_FILE
|
||||
echo "SANDBOX_NAME=$2" >> $SANDBOX_ENV_IN_FILE
|
||||
|
||||
echo "unset SANDBOX_NAME" >> $SANDBOX_ENV_OUT_FILE
|
||||
echo "unset SANDBOX_HOME" >> $SANDBOX_ENV_OUT_FILE
|
||||
|
||||
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
|
||||
;;
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user