Skip to content

Instantly share code, notes, and snippets.

@iyaki
Created September 29, 2019 16:47
Show Gist options
  • Save iyaki/e50f5eac0a3fb3844c3c136aa3669fd0 to your computer and use it in GitHub Desktop.
Save iyaki/e50f5eac0a3fb3844c3c136aa3669fd0 to your computer and use it in GitHub Desktop.
Xampp Project Switcher
#!/bin/bash
declare -A PROJECTS
CONFIGFILE=".xampp-project-switch.conf"
HTDOCSPATH="/opt/lampp/htdocs"
function add_project () {
echo "PROJECTS[${1}]='${2}'" >> $CONFIGFILE
}
OPTION=0
while [ $OPTION -ne 4 ]
do
clear
echo "
Xampp Project Switcher
[WARNING] Using this script you will lose all the content under $HTDOCSPATH
Options:
1: Switch project
2: Add project
3: Delete project
4: Quit
"
read -p "? " OPTION
if [ $OPTION = 1 ]
then
echo ""
echo "Select a project to switch"
source $CONFIGFILE
COUNT=1
for KEY in "${!PROJECTS[@]}"
do
PROJECTSSELECTION[$COUNT]=$KEY
echo "$COUNT: $KEY"
COUNT=$[ COUNT + 1 ]
done
echo "c: Cancel"
read -p "? " PROJECTNUMBER
if [ $PROJECTNUMBER != "c" ]
then
sudo rm -rf "$HTDOCSPATH"
sudo ln -s "${PROJECTS[${PROJECTSSELECTION[$PROJECTNUMBER]}]}" "$HTDOCSPATH"
fi
fi
if [ $OPTION = 2 ]
then
echo ""
echo "Add a new project"
read -p "New project name: " NEWPROJECTNAME
read -p "New project (absolute) path: " NEWPROJECTPATH
add_project $NEWPROJECTNAME $NEWPROJECTPATH
fi
if [ $OPTION = 3 ]
then
echo ""
echo "Delete a project"
source $CONFIGFILE
COUNT=1
for KEY in "${!PROJECTS[@]}"
do
PROJECTSSELECTION[$COUNT]=$KEY
echo "$COUNT: $KEY"
COUNT=$[ COUNT + 1 ]
done
echo "c: Cancel"
read -p "? " PROJECTNUMBER
if [ $PROJECTNUMBER != "c" ]
then
read -p "Are you sure you want to delete the project ${PROJECTSSELECTION[$PROJECTNUMBER]}? [y/n] " CONFIRMDELETE
if [ $CONFIRMDELETE = "y" ]
then
unset PROJECTS[${PROJECTSSELECTION[$PROJECTNUMBER]}]
fi
echo "" > $CONFIGFILE
for KEY in "${!PROJECTS[@]}"
do
add_project $KEY "${PROJECTS[$KEY]}"
done
fi
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment