Created
September 29, 2019 16:47
-
-
Save iyaki/e50f5eac0a3fb3844c3c136aa3669fd0 to your computer and use it in GitHub Desktop.
Xampp Project Switcher
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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