128 lines
3.7 KiB
Bash
Executable file
128 lines
3.7 KiB
Bash
Executable file
#!/bin/bash
|
|
. static/menu.sh
|
|
source $CWD\.env
|
|
|
|
|
|
#https://bytefreaks.net/gnulinux/bash/cecho-a-function-to-print-using-different-colors-in-bash
|
|
cecho () {
|
|
declare -A colors;
|
|
colors=(\
|
|
['black']='\E[0;47m'\
|
|
['red']='\E[0;31m'\
|
|
['green']='\E[0;32m'\
|
|
['yellow']='\E[0;33m'\
|
|
['blue']='\E[0;34m'\
|
|
['magenta']='\E[0;35m'\
|
|
['cyan']='\E[0;36m'\
|
|
['white']='\E[0;37m'\
|
|
);
|
|
|
|
|
|
|
|
local defaultMSG="";
|
|
local defaultColor="black";
|
|
local defaultNewLine=true;
|
|
|
|
|
|
|
|
while [[ $# -gt 1 ]];
|
|
do
|
|
key="$1";
|
|
|
|
|
|
|
|
case $key in
|
|
-c|--color)
|
|
color="$2";
|
|
shift;
|
|
;;
|
|
|
|
-n|--noline)
|
|
newLine=false;
|
|
;;
|
|
*)
|
|
# unknown option
|
|
;;
|
|
esac
|
|
shift;
|
|
done
|
|
|
|
message=${1:-$defaultMSG}; # Defaults to default message.
|
|
color=${color:-$defaultColor}; # Defaults to default color, if not specified.
|
|
newLine=${newLine:-$defaultNewLine};
|
|
|
|
echo -en "${colors[$color]}";
|
|
echo -en "$message";
|
|
if [ "$newLine" = true ] ; then
|
|
echo;
|
|
fi
|
|
tput sgr0; # Reset text attributes to normal without clearing screen.
|
|
return;
|
|
}
|
|
|
|
|
|
function wizzard {
|
|
cecho -c 'blue' "$@";
|
|
#echo -e "\e[4mMENU: select-one, using assoc keys, preselection, leave selected options\e[24m"
|
|
#declare -A options2="${$2}"
|
|
#declare -A options2=( [foo]="Hallo" [bar]="World" [baz]="Record")
|
|
ui_widget_select -l -k "${!menu[@]}" -s bar -i "${menu[@]}"
|
|
#echo "Return code: $?"
|
|
#return "$?"
|
|
}
|
|
|
|
function editVariable(){
|
|
if [ "$1" == "" ]; then
|
|
read -p "Please set a config value for $3 [$2]: " VALUE
|
|
VALUE="${VALUE:-$2}"
|
|
#sed -i "s/$3=.*/$3=\"$VALUE\"/g" .env
|
|
sed -i "s@$3=.*@$3=\"$VALUE\"@g" .env
|
|
#sed -i 's/'"$3"'=.*/'"$3"'='"${VALUE}"'/' .env
|
|
#sed -i -e 's/'$3'=.*/'$3'="'"$VALUE"'"/g' .env
|
|
#sed -i "s/$3=.*/$3=$VALUE/g" .env
|
|
fi
|
|
}
|
|
function setConfig(){
|
|
editVariable "$path" "$PWD" "path"
|
|
editVariable "$CONTAINER_NAME" "pf" "CONTAINER_NAME"
|
|
editVariable "$DOMAIN" "localhost" "DOMAIN"
|
|
editVariable "$SERVER_NAME" "CARLFINDER" "SERVER_NAME"
|
|
editVariable "$MYSQL_PASSWORD" "" "MYSQL_PASSWORD"
|
|
editVariable "$CCP_SSO_CLIENT_ID" "" "CCP_SSO_CLIENT_ID"
|
|
editVariable "$CCP_SSO_SECRET_KEY" "" "CCP_SSO_SECRET_KEY"
|
|
editVariable "$CCP_ESI_SCOPES" "esi-location.read_online.v1,esi-location.read_location.v1,esi-location.read_ship_type.v1,esi-ui.write_waypoint.v1,esi-ui.open_window.v1,esi-universe.read_structures.v1,esi-corporations.read_corporation_membership.v1,esi-clones.read_clones.v1" "CCP_ESI_SCOPES"
|
|
source $CWD\.env
|
|
}
|
|
|
|
while [[ $path == "" ]] || [[ $CONTAINER_NAME == "" ]] || [[ $DOMAIN == "" ]] || [[ $SERVER_NAME == "" ]] || [[ $MYSQL_PASSWORD == "" ]] || [[ $CCP_SSO_CLIENT_ID == "" ]] || [[ $CCP_SSO_SECRET_KEY == "" ]] || [[ $CCP_ESI_SCOPES == "" ]]; do
|
|
setConfig
|
|
done
|
|
|
|
docker container inspect $CONTAINER_NAME > /dev/null 2>&1;
|
|
if [ $? -eq 1 ];
|
|
then
|
|
declare -A menu=( [no]="NO" [yes]="YES")
|
|
wizzard "You did not build the container ! Do you want the setup to do it ? "
|
|
if [ ${menu[$UI_WIDGET_RC]} == "YES" ]; then
|
|
docker-compose build
|
|
tput clear;
|
|
fi
|
|
fi
|
|
|
|
running=$(docker container inspect -f '{{.State.Status}}' $CONTAINER_NAME)
|
|
if [[ $running != "running" ]];then
|
|
declare -A menu=( [no]="NO" [yes]="YES")
|
|
wizzard "Do you want to run the container ?"
|
|
if [ ${menu[$UI_WIDGET_RC]} == "YES" ]; then
|
|
docker-compose up -d
|
|
fi
|
|
fi
|
|
|
|
declare -A menu=( [no]="NO" [yes]="YES ")
|
|
cecho -c 'blue' "Do you want to import the eve_universe database ?";
|
|
cecho -c 'red' "DISCLAIMER: Before you do that go to http://$DOMAIN/setup page (USERNAME:'pf' & password is your APP_PASSWORD) and hit create database, setup tables & fix column keys. After you did that select YES."
|
|
wizzard "";
|
|
if [ ${menu[$UI_WIDGET_RC]} == "YES" ]; then
|
|
docker-compose exec pfdb /bin/sh -c "unzip -p eve_universe.sql.zip | mysql -u root -p\$MYSQL_ROOT_PASSWORD eve_universe";
|
|
fi
|
|
|