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
|
|
}
|