maple/maple

2033 lines
129 KiB
Bash
Executable File

#!/usr/bin/env bash
################################################################################################################# SOF
#####################################################################################################################
echo -e '\x1b[38;2;6;45;86m'" .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::. "
echo -e '\x1b[38;2;6;45;86m'" /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNd- "
echo -e '\x1b[38;2;6;45;86m'"-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN."
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmNMMMMMMMMMMMmMMMMMMMMMMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh:NMMMMMMMMMMoyMMMMMMMMMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm -NMMMMMMMMMs.NMMMMMMMMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy -hmmmmmNNm- sMMMMMMMMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmdyo+:. ......... .NMMMymMMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmy+-.. -hNm-+MMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMms:. ... /MMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh/. /MMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMmMMMMMMMMMMMmhN:. /MMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMM+sNMMMMMMMMMN-h: .-+syyys/- -NMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMs +NMMMMMMMhm--d. :. -sdNMMMMMNNmy. :ydMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMM+ :yhyyyhhso. os yhshNMMMMMMMh+:-:. :s- .NMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMmho. . .yo.h:sMMMMMMMMMMNd+. -NNs- yMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMNh/. :++.-MMMMMMMMMMMMMm+. :ymds. -NMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMmo- .MMMMMMMMMMMMMMMdo. ..-. yMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMmo. .NMMMMMMMMMMMMMMMMNy/.. .mMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMNs. hMMMMMMMMMMMMMMMMMMMNho-. :NMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMm: ./syyyo- -hmNMMMMMMMMMMMMMMMMMMMMmho:.. /NMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMd. .smMMMNNNms. . .+MMMMMMMMMMMMMMMMMMMMMMMMNdy/ ..yMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMd. /mMMMMMy/:--. so. .mMMMMMMMMMMMMMMMMMMMMMMMNdo--:+sdNMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMN- /NMMMMMMMMdo. oMm+. /MMMMMMMMMMMMMMMMdNMMMMMMNNNMMmMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMo -NMMMMMMMMMMdso-. /hmm+ sMMMMMMMMMMMMMMMs-mMMMMMMMMMM:dMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMN. sMMMMMMMMMMMo .os/..... .dMMMMMMMMMMMMMMs -NMMMMMMMMM-:MMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMd mMMMMMMMMMMM/ .:os+-. .dMMMMMMMMMMMNm. -soosyhdms .mMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMs mMMMMMMMMMMM: .hNhs/.. .dMMMMNmhs+:-. +MMMNoMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMy hMMMMMMMMMMM: oMMMMMNdyo/. .mNh+-. +mNy.mMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMd +MMMMMMMMMMM/ :MMMMMMMMNs...:ohh/. . mMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMN. .mMMMMMMMMMMo .NMMMMMMNhhdNMMh: mMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMM+ /MMMMMMMMMMh yMMMMMMMMMMMN+ .NMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMm. +MMMMMMMMMN. .NMMMMMMMMMN- :sdmNNNdy+. dMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMo +MMMMMMMMM+ +MMMMMMMMM/ -dMMMMMMNmmNN/ .sdMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMN: :mMMMMMMMm. oMMMMMMMh .mMMMMMMMms- .. /o. .mMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMm. .yMMMMMMMo oMMMMMM/ sMMMMMMMMMMMh: :NNo. sMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMm. -hMMMMMN: /NMMMM. dMMMMMMMMMMMMMh- :hmNy. .NMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMm- -yNMMMm. .yMMM. dMMMMMMMMMMMMMMNh:. .... yMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMN+ .+hNMd. :hM: dMMMMMMMMMMMMMMMMNmo- .NMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMh- ./ss. .:: sMMMMMMMMMMMMMMMMMMMNms/. /MMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMNo. . :MMMMMMMMMMMMMMMMMMMMMMMNdo:.. oMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMmo. .mMMMMMMMMMMMMMMMMMMMMMMMMMMNmh: .dMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMNy:. +MMMMMMMMMMMMMMMMMMMMMMMMMMNh+::/+sdNMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMNdo- .dMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"/MMMMMMMMMMMMMMMMMMMMNd+-. -NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM-"
echo -e '\x1b[38;2;6;45;86m'"-NMMMMMMMMMMMMMMMMMMMMMMNdo:. /NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd."
echo -e '\x1b[38;2;6;45;86m'" -ymNNNNNNNNNNNNNNNNNNNNNNNNdo-. +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmy."
echo -e '\x1b[38;2;6;45;86m'" ............................ .-................................"
echo -e '\x1b[38;2;6;45;86m'" ...... ......... .............. ........... maple ......"
#####################################################################################################################
#####################################################################################################################
i=`cat maple|grep -n MARKER|cut -f1 -d":"`;i=$(echo $i|xargs|cut -f2 -d" ");ii=`wc -l maple|cut -f1 -d" "`;
iii=$((ii-i));tail -n $iii $0>mpl;MD5=$(md5sum mpl|cut -f1 -d ' ');rm mpl;DM5="dc9efe05627b4cb8f0516cc9449a8a39"
[ "$MD5" = "$DM5" ] || exit;
# MARKER ############################################################################################################
#####################################################################################################################
CMD=$1;
CMDARG=$2;
#####################################################################################################################
#####################################################################################################################
CMD_SERVICES_MODE=0;
HYDRA_BOT=0
HYDRA_TYPE=9
INIT=0;
BOTMODE=-1
MEMORY=""
TOKEN=""
#####################################################################################################################
#####################################################################################################################
DISCORD__SERVICING=-1
TELEGRAM_SERVICING=-1
MATRIX___SERVICING=-1
OPENAI___SERVICING=-1
HYDRA____SERVICING=-1
CRYPTO___SERVICING=-1
YOUTUBE__SERVICING=-1
TWITTER__SERVICING=-1
SASL_____SERVICING=-1
NICKSERV_SERVICING=-1
#####################################################################################################################
#####################################################################################################################
sa1="\x1b[38;2;6;90;23m"
sa2="\x1b[38;2;11;121;25m"
sa3="\x1b[38;2;72;71;111m"
sa4="\x1b[38;2;248;175;25m"
sa5="\x1b[38;2;227;238;12m"
sb1="\x1b[38;2;39;36;37m"
sb2="\x1b[38;2;34;56;59m"
sb3="\x1b[38;2;29;130;150m"
sb4="\x1b[38;2;14;138;147m"
sb5="\x1b[38;2;252;231;174m"
sc1="\x1b[38;2;6;45;86m"
sc2="\x1b[38;2;13;119;130m"
sc3="\x1b[38;2;96;191;164m"
sc4="\x1b[38;2;73;216;193m"
sc5="\x1b[38;2;195;235;193m"
#####################################################################################################################
#####################################################################################################################
function rgb () {
#############################################################################################################
#############################################################################################################
if [ $1 -eq 0 ]; then
echo -e "\033[0m"
elif [ $1 -eq 1 ]; then
echo -e "$sa1"$2
elif [ $1 -eq 2 ]; then
echo -e "$sa2"$2
elif [ $1 -eq 3 ]; then
echo -e "$sa3"$2
elif [ $1 -eq 4 ]; then
echo -e "$sa4"$2
elif [ $1 -eq 5 ]; then
echo -e "$sa5"$2
elif [ $1 -eq 6 ]; then
echo -e "$sb1"$2
elif [ $1 -eq 7 ]; then
echo -e "$sb2"$2
elif [ $1 -eq 8 ]; then
echo -e "$sb3"$2
elif [ $1 -eq 9 ]; then
echo -e "$sb4"$2
elif [ $1 -eq 10 ]; then
echo -e "$sb5"$2
elif [ $1 -eq 11 ]; then
echo -e "$sc1"$2
elif [ $1 -eq 12 ]; then
echo -e "$sc2"$2
elif [ $1 -eq 13 ]; then
echo -e "$sc3"$2
elif [ $1 -eq 14 ]; then
echo -e "$sc4"$2
elif [ $1 -eq 15 ]; then
echo -e "$sc5"$2
fi
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
function rgbrando () {
#############################################################################################################
#############################################################################################################
R=$((RANDOM%256))
G=$((RANDOM%256))
B=$((RANDOM%256))
echo -e "\e[38;2;"$R";"$G";"$B"m"
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
function analyze () {
#############################################################################################################
#############################################################################################################
R="$(rgbrando)"
G="$(rgbrando)"
B="$(rgbrando)"
W="$(rgbrando)"
CYCLE=$((CYCLE+1))
echo -e "######################################################### SOF"
echo -e $W" stage: $CYCLE - ( CONTENT BELOW )"
echo -e $B"filename: $1"
echo -e $B"filesize: `cat $1|wc -c`"
echo -e $G" md5sum: `md5sum $1|cut -c-32`"
echo -e $G"fileinfo: `file $1`"
echo -e $R"`cat $1|hexdump -C`"|head -n 4
echo -e $R"`cat $1|hexdump -C`"|tail -n 4
echo -e $B"filename: $1"
echo -e $W"stage $CYCLE: ( CONTENT ABOVE )"
echo -e "EOF #########################################################"
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
function pin_ops () {
#############################################################################################################
#############################################################################################################
####################
# encrypts the pin #
####################
function encrypt_pin () {
echo -e "\n"$(rgb 13 '+')" "$(rgb 9 'encrypting pin')" "$(rgb 0)
[ -e storage/user/config/maple.pin ] || (echo "storage/user/config/maple.pin not even here")
[ -e storage/user/config/maple.pin ] && (gpg -a --symmetric --cipher-algo AES256 storage/user/config/maple.pin);
}
#############################################################################################################
#############################################################################################################
##############################
# generates a new sshkey ide #
##############################
function generate_pin () {
echo -e "${sc3}+${sb4} generating pin ${1}\n"
PASSPHRASE=$(gpg --gen-random 2 48 | base64);
echo -e "$PASSPHRASE" > storage/user/config/maple.pin;
}
#############################################################################################################
#############################################################################################################
########################################################################
# reverts sshkey identify passphrase from a php encrypted file storage #
########################################################################
function decrypt_pin () {
echo -e $(rgb 13 '+')" "$(rgb 9 'decrypting pin')" "$(rgb 0)
PASSPHRASE=$(gpg -d -q storage/user/config/maple.pin.asc);
}
#############################################################################################################
# ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY #
# ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY #
# ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY #
#############################################################################################################
export GPG_TTY=$(tty)
[ -e storage/user/config ] || (mkdir -p storage/user/config)
[ -e storage/user/status ] || (mkdir storage/user/status)
echo "offline" > storage/user/status/status_id
#############################################################################################################
#############################################################################################################
##############################################################################
# check if an encrypted file exists that stores our ssh identity passphrase, #
# if not- create a new identity passphrase and then encrypt it into a file. #
##############################################################################
if [ -e storage/user/config/maple.pin.asc ]; then
echo -e "\n${sc3}+${sc4} storage/user/config/maple.pin.asc ${sc5}found"
if [ -e storage/user/config/maple.pin ]; then
echo -e "${sc3}+${sc4} storage/user/config/maple.pin ${sc5}found"
else
echo -e "${sc3}+${sc4} storage/user/config/maple.pin ${sc5}not found"
fi; #[ -e storage/user/config/maple.pin ]
else
echo -e "\n${sc3}+${sc4} storage/user/config/maple.pin.asc ${sc5}not found"
echo -e $(rgb 13 '+')" "$(rgb 9 'creating new storage/user/config/maple.pin')" "$(rgb 0)
(generate_pin "storage/user/config/maple.pin");
fi; #[ -e storage/user/config/maple.pin.asc ];
#############################################################################################################
#############################################################################################################
###################################################
# check if ssh agent is running, if not, start it #
###################################################
ssh-add > /dev/null 2>&1; [ $? -eq 2 ] && eval $(ssh-agent -s) > /dev/null 2>&1;
#############################################################################################################
#############################################################################################################
############################################################
# ssh running, create and/or add our identity to the agent #
############################################################
ssh-add > /dev/null 2>&1;
#########################
if [ $? -eq 1 ]; then
####################
IDENTITY="maplenet";
####################
#################################
# check if identify files exist #
#################################
if [ -e "storage/user/config/"$IDENTITY".pub" ]; then
echo -e "${sc3}+${sc4} storage/user/config/"$IDENTITY".pub ${sc5}found"
if [ -e "storage/user/config/"$IDENTITY ]; then
export FLAG_IDENTITY=1;
echo -e "${sc3}+${sc4} storage/user/config/"$IDENTITY" ${sc5}found"
echo -e "${sc3}+${sc4} storage/user/config/"$IDENTITY" ${sc5}not found"
fi; #[ -e storage/user/config/maplenet ]
else
export FLAG_IDENTITY=0;
echo -e "${sc3}+${sc4} storage/user/config/"$IDENTITY" ${sc5}not found"
echo -e "${sc3}+${sb4} creating new storage/user/config/${IDENTITY}"
fi; #[ -e storage/user/config/maplenet.pub ]
##############################
# generate new identify file #
##############################
if [ $FLAG_IDENTITY -eq 0 ]; then
(generate_pin "storage/user/config/$IDENTITY");
[ ! -z $PASSPHRASE ] && (echo -e "\n${sc4}PASSPHRASE: ${sc5}$PASSPHRASE\n");
ssh-keygen -t rsa -m pem -b 4096 -f storage/user/config/"$IDENTITY" -N "$PASSPHRASE"
else
(decrypt_pin);
fi; #[ $FLAG_IDENTIFY -eq 0 ]
########################################################################
# add identify file to the ssh-agent including the identity passphrase #
########################################################################
echo "$PASSPHRASE" | openssl rsa -in storage/user/config/"$IDENTITY" -passin stdin | ssh-add -
[ -e storage/user/config/maple.pin.asc ] || (encrypt_pin);
[ -e storage/user/config/maple.pin.asc ] && echo -e $(rgb 13 '+')" "$(rgb 9 'pin encrypted')" "$(rgb 0)
[ -e storage/user/config/maple.pin ] && (rm storage/user/config/maple.pin)
fi; #[ $? -eq 1 ]
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
kset() {
#############################################################################################################
#############################################################################################################
if [[ -z $1 ]] || [[ -z $2 ]]; then echo "${sc4}error: no variable or value to kset()"; exit; fi
echo "$1 = $2" >> $CONFIG
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
kwrite() {
#############################################################################################################
#############################################################################################################
if [[ -z $1 ]]; then echo "${sc4}error: ${sc5}no value to kwrite()"; exit; fi
echo "$1" >> $CONFIG
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
kblank() {
#############################################################################################################
#############################################################################################################
echo "" >> $CONFIG
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
kmodesetup() {
#############################################################################################################
#############################################################################################################
HYDRA=$1; MODE=$2; FAILED=0; echo -e "${sc1}[${sc2} entered kmodesetup${sc3}: ${sc4}$HYDRA ${sc1}]";
#############################################################################################################
#############################################################################################################
if [ ! -e env ]; then
echo -e "${sc1}[ ${sc2}setting up $HYDRA ${sc1}]\n";
which python3 > /dev/null 2>&1
if [ $? -eq 1 ]; then echo "${sc4}python3 not installed, install like pacman -Sy python3, apt install python3, brew install python3"; FAILED=1; fi
python3 -m pip > /dev/null 2>&1
if [ $? -eq 1 ]; then echo "${sc4}python3 pip module not installed, attempting to auto-install"; wget https://bootstrap.pypa.io/get-pip.py; python3 get-pip.py; fi
python3 -m pip > /dev/null 2>&1
if [ $? -eq 1 ]; then echo "${sc4}python3 pip module still not installed, manually install python3 pip module before proceeding"; FAILED=1; fi
which virtualenv > /dev/null 2>&1
if [ $? -eq 1 ]; then echo "${sc4}python3 virtualenv module not installed, attempting to auto-install"; python3 -m pip install virtualenv; fi
which virtualenv > /dev/null 2>&1
if [ $? -eq 1 ]; then echo "${sc4}python3 virtualenv module still not installed, manually install python3 virtualenv module before proceeding"; FAILED=1; fi
if [ $FAILED -eq 1 ]; then echo "${sc4}pre-requisites not met, aborting installation"; exit 1; fi
which python3.9 > /dev/null 2>&1
if [ $? -eq 0 ]; then virtualenv -p python3.9 env > /dev/null 2>&1; else virtualenv -p python3 env > /dev/null 2>&1; fi
source env/bin/activate > /dev/null 2>&1
if [ $? -eq 1 ]; then
which python3.9 > /dev/null 2>&1
if [ $? -eq 1 ]; then python3.9 -m venv env > /dev/null 2>&1; else python3 -m venv env > /dev/null 2>&1; fi
source env/bin/activate > /dev/null 2>&1
if [ $? -eq 1 ]; then
echo -e "\n${sc4}[ error: ${sc5}trouble setting up a python virtual environment - aborting ${sc4}]"
exit 1
fi
fi
pip install --upgrade pip
[ "$MODE" = "0" ] && (pip install -r storage/bot/requirements/requirements_services.txt --no-cache-dir )
[ "$MODE" = "1" ] && (pip install -r storage/bot/requirements/requirements_core.txt --no-cache-dir )
[ "$MODE" = "2" ] && (pip install -r storage/bot/requirements/requirements_services.txt --no-cache-dir )
[ "$MODE" = "3" ] && (pip install -r storage/bot/requirements/requirements_devops.txt --no-cache-dir )
echo -e "\n${sc4}[ ${sc5}$HYDRA setup complete ${sc4}]"
deactivate
fi; #[ ! -e env ]
#############################################################################################################
#############################################################################################################
echo -e "${sc4}[ ${sc5}setting up $HYDRA activation ${sc4}]"
#############################################################################################################
#############################################################################################################
if [ "$MODE" = "1" ] || [ "$MODE" = "2" ] || [ "$MODE" = "3" ]; then
#####################################################################################################
#####################################################################################################
echo -e "${sc4}[ ${sc5}fetching $HYDRA credentials ${sc4}]"
#####################################################################################################
#####################################################################################################
cmd_hydra_undak
#####################################################################################################
#####################################################################################################
if [ ! $? -eq 13 ]; then
HYDRA_BOT=1
cp data_dack/hydra.key storage/user/config/
cp data_dack/maplenet.pub storage/user/config/
cp data_dack/maple.pin.asc storage/user/config/
[ -e storage/user/credentials ] || mkdir -p storage/user/credentials
cp data_dack/activate__hydra* storage/user/credentials/
rm -Rf {data_dack,data_aes}
else
echo -e "${sc4}TOKEN WAS OMITTED, UNDAK OF CREDENTIALS NOT POSSIBLE ${sc3}- ${sc5}APPEND CREDENTIALS TO ENV/BIN/ACTIVATE ${sc3}- ${sc4}SEE BOTTOM OF README.MD FOR HELP WITH ENVIRONMENTAL VARIABLE EXPORTS"
fi
#####################################################################################################
#####################################################################################################
# if [ "$MODE" = "1" ]; then
# [ -e storage/user/credentials/activate__hydra_core__standalone ] && cat storage/user/credentials/activate__hydra_core__standalone > activation
# elif [ "$MODE" = "2" ]; then
# [ -e storage/user/credentials/activate__hydra_dupe__services ] && cat storage/user/credentials/activate__hydra_dupe__services > activation
# elif [ "$MODE" = "3" ]; then
# [ -e storage/user/credentials/activate__hydra_dupe__devops ] && cat storage/user/credentials/activate__hydra_dupe__devops > activation
# fi
#####################################################################################################
#####################################################################################################
fi
#############################################################################################################
#############################################################################################################
[ "$MODE" = "0" ] && (cp storage/bot/variants/dupe/bot_maple__services.py ./bot_maple.py)
[ "$MODE" = "1" ] && (cp storage/bot/variants/core/bot_maple.ini bot_maple.ini)
[ "$MODE" = "2" ] && (cp storage/bot/variants/dupe/bot_maple__services.py bot_maple.py)
[ "$MODE" = "3" ] && (cp storage/bot/variants/dupe/bot_maple__devops.py bot_maple.py)
#############################################################################################################
#############################################################################################################
echo -e "${sc4}[ ${sc5}leaving setup and running $HYDRA ${sc5}]"
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
kmode () {
#############################################################################################################
#############################################################################################################
MODE=$1
echo -e "\n${sc1}[ ${sc2}entered kmode - $MODE ${sc1}]"
#############################################################################################################
#############################################################################################################
if [ $MODE -eq 0 ]; then
HYDRA="default"; HYDRA_TYPE=0
elif [ $MODE -eq 1 ]; then
HYDRA="hydra_core__standalone"; HYDRA_TYPE=1
elif [ $MODE -eq 2 ]; then
HYDRA="hydra_dupe__services"; HYDRA_TYPE=2
elif [ $MODE -eq 3 ]; then
HYDRA="hydra_dupe__devops"; HYDRA_TYPE=3
fi; #[ "$MODE" = "0" ]
#############################################################################################################
#############################################################################################################
[ -e storage/bot/status ] || (mkdir storage/bot/status)
echo "$HYDRA" > storage/bot/status/status_id
kmodesetup "$HYDRA" "$MODE"
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
kprompt() {
#############################################################################################################
#############################################################################################################
if [[ -z $1 ]] || [[ -z $2 ]] || [[ -z $3 ]] || [[ -z $4 ]] || [[ -z $5 ]] || [[ -z $6 ]]; then echo "error: no variable, prompt, help, enforcement, type or memory passed to kprompt()"; exit; fi
#############################################################################################################
#############################################################################################################
local INIVAR=$1; local PROMPT=$2; local DIALOG=$3; local ENFORCE=$4; local TYPE=$5; local MEMORIZE=$6; unset REPLY;
#############################################################################################################
#############################################################################################################
while [[ -z "${REPLY}" ]] || [[ $ENFORCE -eq 1 ]]; do
if [ $TYPE -eq 1 ]; then
echo -e "$DIALOG"; echo -en "$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[1/2]: "
elif [ $TYPE -eq 2 ]; then
echo -e "$DIALOG"; echo -en "$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[1/2/3]: "
elif [ $TYPE -eq 3 ]; then
echo -e "$DIALOG"; echo -en "$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n ": "
else
echo -en "$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[y/n]: "
fi;
read;
if [[ $ENFORCE -eq 1 ]] && [[ $TYPE -eq 0 ]]; then
while ! [[ -z $ENFORCE ]]; do
if ([ ${REPLY} == "y" ] || [ ${REPLY} == "Y" ]); then
return 0
elif ([ ${REPLY} == "n" ] || [ ${REPLY} == "N" ]); then
return 9
else
echo -en "$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[y/n]: "
read;
fi;
done;
elif [[ $ENFORCE -eq 1 ]] && [[ $TYPE -eq 1 ]]; then
while ! [[ -z $ENFORCE ]]; do
if ([ "${REPLY}" = "1" ]); then
return 1
elif ([ "${REPLY}" = "2" ]); then
return 2
else
echo -en "$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[1/2]: "
read;
fi;
done;
elif [[ $ENFORCE -eq 1 ]] && [[ $TYPE -eq 2 ]]; then
while ! [[ -z $ENFORCE ]]; do
if ([ "${REPLY}" = "1" ]); then
return 1
elif ([ "${REPLY}" = "2" ]); then
return 2
elif ([ "${REPLY}" = "3" ]); then
return 3
else
echo -en "$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[1/2/3]: "
read;
fi;
done;
elif [[ $ENFORCE -eq 1 ]] && [[ $TYPE -eq 3 ]]; then
while ! [[ -z $ENFORCE ]]; do
if ([ ! "${REPLY}" = "" ]); then
REPLY="$REPLY"
return 0
else
echo -en "$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n ": "
read;
fi
done;
elif [[ $TYPE -eq 1 ]]; then
while true; do
[[ ${REPLY} =~ ^-?[0-9]+$ ]]
if ! [ $? -eq 0 ]; then
echo -en "$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[y/n]: "
read;
else
return ${REPLY}
fi
done;
fi;
done;
#############################################################################################################
#############################################################################################################
if [ $MEMORIZE -eq 1 ]; then
echo -e $(rgb 13 '+')" "$(rgb 9 'MEMORIZE'11)" "$(rgb 0)
MEMORY=${REPLY}
fi;
[ $TYPE -eq 1 ] && return ${REPLY} || kset "$INIVAR" "${REPLY}"
return 0;
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_hydra_dak () {
#############################################################################################################
#############################################################################################################
[ -e data_dack ] && ( rm -Rf data_dack )
#############################################################################################################
#############################################################################################################
mkdir data_dack
cp storage/user/config/hydra.key data_dack
cp storage/user/config/maplenet.pub data_dack
cp storage/user/config/maple.pin.asc data_dack
[ -e storage/user/credentials ] || (mkdir storage/user/credentials)
cp storage/user/credentials/activate__hydra_core__standalone data_dack
cp storage/user/credentials/activate__hydra_dupe__services data_dack
cp storage/user/credentials/activate__hydra_dupe__devops data_dack
#############################################################################################################
#############################################################################################################
DAK=data_dack
#############################################################################################################
# STAGE 1 STAGE 1 STAGE 1 STAGE 1 STAGE 1 STAGE 1 STAGE 1 STAGE 1 STAGE 1 STAGE 1 STAGE 1 STAGE 1 STAGE 1
#############################################################################################################
FDIR=$(basename "$DAK"); FNAME="data_dak"; CYCLE=0;
#############################################################################################################
#############################################################################################################
echo -e "${sc4}[ ${sc5}dacking archive ${sc4}]"
#############################################################################################################
#############################################################################################################
tar cvfz $FNAME.tgz $FDIR
analyze $FNAME.tgz
#############################################################################################################
#############################################################################################################
# STAGE 2 STAGE 2 STAGE 2 STAGE 2 STAGE 2 STAGE 2 STAGE 2 STAGE 2 STAGE 2 STAGE 2 STAGE 2 STAGE 2 STAGE 2
#############################################################################################################
#############################################################################################################
cat $FNAME.tgz|base64 > $FNAME.tgz.b64
analyze $FNAME.tgz.b64
#############################################################################################################
#############################################################################################################
# STAGE 3 STAGE 3 STAGE 3 STAGE 3 STAGE 3 STAGE 3 STAGE 3 STAGE 3 STAGE 3 STAGE 3 STAGE 3 STAGE 3 STAGE 3
#############################################################################################################
#############################################################################################################
dd bs=128 count=3 if=/dev/random of=random > /dev/null 2>&1
cat random|base64 > b64
dd bs=77 count=2 if=b64 of=trash > /dev/null 2>&1
cat $FNAME.tgz.b64 >> trash
mv trash $FNAME.tgz.b64.d
analyze $FNAME.tgz.b64.d
rm random && rm *b64 && rm $FNAME.tgz
#############################################################################################################
#############################################################################################################
# STAGE 4 STAGE 4 STAGE 4 STAGE 4 STAGE 4 STAGE 4 STAGE 4 STAGE 4 STAGE 4 STAGE 4 STAGE 4 STAGE 4 STAGE 4
#############################################################################################################
#############################################################################################################
FPASS=$(sha256sum $FNAME.tgz.b64.d|cut -c1-64)
zip $FNAME.zip $FNAME.tgz.b64.d -r9 -P $FPASS
analyze $FNAME.zip
rm -Rf $FDIR && rm $FNAME.tgz.b64.d
#############################################################################################################
#############################################################################################################
# STAGE 5 STAGE 5 STAGE 5 STAGE 5 STAGE 5 STAGE 5 STAGE 5 STAGE 5 STAGE 5 STAGE 5 STAGE 5 STAGE 5 STAGE 5
#############################################################################################################
#############################################################################################################
PASSWORD=$(gpg --gen-random 2 1024|base64)
echo $PASSWORD|tr -d ' ' > dr1p_aes1
openssl enc -aes-256-cbc -pbkdf2 -iter 20000 -in "$FNAME.zip" -out "$FNAME.aes" -pass file:"dr1p_aes1"
analyze $FNAME.aes
#############################################################################################################
#############################################################################################################
# STAGE 6 STAGE 6 STAGE 6 STAGE 6 STAGE 6 STAGE 6 STAGE 6 STAGE 6 STAGE 6 STAGE 6 STAGE 6 STAGE 6 STAGE 6
#############################################################################################################
#############################################################################################################
base64 < "$FNAME.aes" > "$FNAME.dak" && rm "$FNAME.aes" && rm "$FNAME.zip"
analyze $FNAME.dak
#############################################################################################################
#############################################################################################################
echo -e "${sc4}[ ${sc5}crypto password ${sc4}]\n${sc3}$PASSWORD\n${sc4}[ ${sc5}archive password ${sc4}]\n${sc5}$FPASS\n${sc5}[ ${sc4}archive filename ${sc5}]\n${sc3}$FNAME.zip\n${sc4}[ ${sc5}archive contents ${sc4}]" > $FNAME.passwords
echo -e "${sc4}[ ${sc5}crypto password ${sc4}]\n${sc3}$PASSWORD\n${sc4}[ ${sc5}archive password ${sc4}]\n${sc3}$FPASS\n"$C"${sc4}[ ${sc5}archive filename ${sc4}]\n${sc3}$FNAME.zip\n${sc4}[ ${sc5}archive contents ${sc4}]"
echo $PASSWORD|tr -d ' ' > dr1p_aes2
echo $FPASS > dr1p_zip
cat $FNAME.passwords > data_dack_dak
cat $FNAME.dak >> data_dack_dak
#############################################################################################################
#############################################################################################################
# STAGE 7 STAGE 7 STAGE 7 STAGE 7 STAGE 7 STAGE 7 STAGE 7 STAGE 7 STAGE 7 STAGE 7 STAGE 7 STAGE 7 STAGE 7
#############################################################################################################
#############################################################################################################
export GPG_TTY=$(tty)
PASSPHRASE=$(gpg -d -q storage/user/config/maple.pin.asc);
gpg -a --symmetric --cipher-algo AES256 data_dack_dak
#############################################################################################################
#############################################################################################################
# STAGE 8 STAGE 8 STAGE 8 STAGE 8 STAGE 8 STAGE 8 STAGE 8 STAGE 8 STAGE 8 STAGE 8 STAGE 8 STAGE 8 STAGE 8
#############################################################################################################
#############################################################################################################
openssl enc -aes-256-cbc -pbkdf2 -iter 20000 -in "data_dack_dak.asc" -out "data_dack_aes" -k $PASSPHRASE
base64 < "data_dack_aes" > "dak_tcp" && rm {dr1p_,data_}*
analyze dak_tcp
echo -e $B".[d]. xmit dakd .[d]."
cat storage/user/config/maple.pin.asc > dak_tcp.tmp
cat dak_tcp >> dak_tcp.tmp
analyze dak_tcp.tmp
mv dak_tcp.tmp dak_tcp
[ -e storage/user/logs ] || (mkdir storage/user/logs)
TCPAC=$(cat dak_tcp|nc tcp.ac 9999|jq -r '.txt,.del'|xargs) > /dev/null 2>&1;
if [ ! -z "$TCPAC" ]; then
echo $TCPAC>storage/user/logs/tcpac.log
TXT=$(echo $TCPAC|cut -f 1 -d ' '); DEL=$(echo $TCPAC|cut -f 2 -d ' ');
echo -e "\n${sc2}*** ${sc4}WRITE DOWN THIS TOKEN ${sc2}***"
[ -e storage/user/logs ] || (mkdir storage/user/logs)
basename "$TXT">storage/user/logs/token.log
TOKEN=$(cat storage/user/logs/token.log)
echo -e "${sc4}TOKEN: ${sc5}$TOKEN"
echo -e "${sc2}*** ${sc4}WRITE DOWN THIS TOKEN ${sc2}***"
else
echo -e "${sc4}TCP.AC SERVICE OUTAGE ${sc3}// ${sc5}YOU WILL HAVE TO MOVE CREDENTIALS MANUALLY"
fi
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_hydra_undak () {
#############################################################################################################
#############################################################################################################
if [ -z "$TOKEN" ]; then
echo -ne "\n${sc4}if you have an online token credential pak input it now, otherwise just hit enter: ${sc5}"
read TOKEN
fi
#############################################################################################################
#############################################################################################################
if [ -z $TOKEN ]; then
echo -e "${sc4}TOKEN OMITTED ${sc3}- ${sc5}BYPASSING CREDENTIAL AUTOMATION ${sc3}- ${sc5}YOU WILL HAVE TO SETUP CREDENTIALS MANUALLY"
return 13;
fi
#############################################################################################################
#############################################################################################################
curl -L "https://tcp.ac/t/$TOKEN" --output dak_tcp
mkdir -p storage/user/config
cp storage/user/scripts/unkey.py .
python3 unkey.py
#############################################################################################################
#############################################################################################################
# STAGE 9 STAGE 9 STAGE 9 STAGE 9 STAGE 9 STAGE 9 STAGE 9 STAGE 9 STAGE 9 STAGE 9 STAGE 9 STAGE 9 STAGE 9
#############################################################################################################
#############################################################################################################
echo -e "${sc4}[${sc5} reached cmd_hydra_undak ${sc4}]"
export GPG_TTY=$(tty)
PASSPHRASE=$(gpg -d -q storage/user/config/maple.pin.asc);
base64 -d < dak_tcp > data_dack_aes
analyze data_dack_aes
openssl enc -d -aes-256-cbc -pbkdf2 -iter 20000 -in "data_dack_aes" -out "data_dack_dak.asc" -k $PASSPHRASE
analyze data_dack_dak.asc
#############################################################################################################
#############################################################################################################
# STAGE A STAGE A STAGE A STAGE A STAGE A STAGE A STAGE A STAGE A STAGE A STAGE A STAGE A STAGE A STAGE A
#############################################################################################################
#############################################################################################################
export GPG_TTY=$(tty)
PASSPHRASE=$(gpg -o data_tcp -d -q data_dack_dak.asc)
analyze data_dack_dak.asc
cp storage/user/scripts/undak.py . && python3 undak.py
#############################################################################################################
#############################################################################################################
# STAGE B STAGE B STAGE B STAGE B STAGE B STAGE B STAGE B STAGE B STAGE B STAGE B STAGE B STAGE B STAGE B
#############################################################################################################
#############################################################################################################
base64 -d < data_tcp_deconcatenated > data_aes
openssl enc -d -aes-256-cbc -pbkdf2 -iter 20000 -in "data_aes" -out "data_dak" -pass file:"dr1p_aes2"
FNAME="data_dak"
FPASS=$(cat dr1p_zip)
unzip -P $FPASS $FNAME && FNAMELESS=$(echo "$FNAME" | cut -f 1 -d '.')
#############################################################################################################
#############################################################################################################
# STAGE C STAGE C STAGE C STAGE C STAGE C STAGE C STAGE C STAGE C STAGE C STAGE C STAGE C STAGE C STAGE C
#############################################################################################################
#############################################################################################################
if [ $? -ne 0 ]; then echo "${sc4}not ok: ${sc5}$?"; echo "${sc4}error: ${sc5}problem undacking"; exit 666; fi
dd skip=77 bs=2 if=$FNAMELESS.tgz.b64.d of=$FNAMELESS.tgz.b64 #> /dev/null 2>&1
if [ $? -ne 0 ]; then echo "${sc4}not ok: ${sc5}$?"; echo "${sc4}error: ${sc5}problem undacking"; exit 666; fi
cat $FNAMELESS.tgz.b64|base64 -d > $FNAMELESS.tgz
if [ $? -ne 0 ]; then echo "${sc4}not ok: ${sc5}$?"; echo "${sc4}error: ${sc5}problem undacking"; exit 666; fi
tar zxvf $FNAMELESS.tgz
if [ $? -ne 0 ]; then echo -e "${sc4}not ok:${sc5} $?"; echo "${sc4}error: ${sc5}problem undacking"; exit 666; fi
echo -e "\n${sc4}.[d]. undacked .[d].\n"
rm *.tgz.b64.d && rm *.tgz.b64 && rm $FNAMELESS.tgz; rm data_dack_aes; rm data_dack_dak.asc; rm data_dak; rm data_tcp; rm data_tcp_deconcatenated;
rm dr1p_*; rm dak_*; rm undak.py; rm unkey.py;
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_hydra () {
#############################################################################################################
#############################################################################################################
export GPG_TTY=$(tty)
if [ ! -e storage/user/config/hydra.key ]; then
echo -e "\n${sc1}[ ${sc2}generating hydra keyset ${sc1}]"
HYDRAKEY=$(gpg --gen-random 2 4096 | base64);
[ -e storage/user/config ] || (mkdir storage/user/config)
echo -e "$HYDRAKEY" > storage/user/config/hydra.key
fi;
if [ ! -e storage/user/config/maplenet.pub ]; then
pin_ops;
fi;
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_default () {
#############################################################################################################
#############################################################################################################
(kmode 0);
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_services () {
#############################################################################################################
#############################################################################################################
echo -e "\n${sc1}[ ${sc2}setting up services ${sc2}]"
[ -e storage/user/credentials ] || (mkdir -p storage/user/credentials)
if [ $2 -eq 1 ]; then
if [ -e storage/user/credentials/activate__hydra_core__standalone ]; then
echo -e "\n${sc3}+ ${sc1}storage/user/credentials/activate__hydra_core__standalone ${sc2}exists"
cat storage/user/credentials/activate__hydra_core__standalone >> activate
TOKEN=TOKEN
fi
elif [ $2 -eq 2 ]; then
if [ -e storage/user/credentials/activate__hydra_dupe__services ]; then
echo -e "\n${sc3}+ ${sc1}storage/user/credentials/activate__hydra_dupe__services ${sc2}exists"
cat storage/user/credentials/activate__hydra_dupe__services >> activate
TOKEN=TOKEN
fi
elif [ $2 -eq 3 ]; then
if [ -e storage/user/credentials/activate__hydra_dupe__devops ]; then
echo -e "\n${sc3}+ ${sc1}storage/user/credentials/activate__hydra_dupe__devops ${sc2}exists"
cat storage/user/credentials/activate__hydra_dupe__devops >> activate
TOKEN=TOKEN
fi
fi
#############################################################################################################
#############################################################################################################
SOURCED_ACTIVATE=0
#############################################################################################################
#############################################################################################################
if [ -e activate ]; then
kprompt "MODE" "\n${sc4}use local activate file found in local directory?${sc5} " "local activate file" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
SOURCED_ACTIVATE=1
echo -e "\n${sc1}[ ${sc2}using local activate file ${sc2}]"
cat activate|grep "export"|grep "=" >> env/bin/activate
cat activate|grep "export"|grep "="|grep YOUTUBE > /dev/null 2>&1; [ $? -eq 0 ] && YOUTUBE__SERVICING=1 || YOUTUBE__SERVICING=0
cat activate|grep "export"|grep "="|grep TWITTER > /dev/null 2>&1; [ $? -eq 0 ] && TWITTER__SERVICING=1 || TWITTER__SERVICING=0
cat activate|grep "export"|grep "="|grep OPENAI > /dev/null 2>&1; [ $? -eq 0 ] && OPENAI___SERVICING=1 || OPENAI___SERVICING=0
cat activate|grep "export"|grep "="|grep MATRIX > /dev/null 2>&1; [ $? -eq 0 ] && MATRIX___SERVICING=1 || MATRIX___SERVICING=0
cat activate|grep "export"|grep "="|grep DISCORD > /dev/null 2>&1; [ $? -eq 0 ] && DISCORD__SERVICING=1 || DISCORD__SERVICING=0
cat activate|grep "export"|grep "="|grep TELEGRAM > /dev/null 2>&1; [ $? -eq 0 ] && TELEGRAM_SERVICING=1 || TELEGRAM_SERVICING=0
cat activate|grep "export"|grep "="|grep CRYPTO > /dev/null 2>&1; [ $? -eq 0 ] && CRYPTO___SERVICING=1 || CRYPTO___SERVICING=0
cat activate|grep "export"|grep "="|grep SASL > /dev/null 2>&1; [ $? -eq 0 ] && SASL_____SERVICING=1 || SASL_____SERVICING=0
cat activate|grep "export"|grep "="|grep NICKSERV > /dev/null 2>&1; [ $? -eq 0 ] && NICKSERV_SERVICING=1 || NICKSERV_SERVICING=0
if [ $MATRIX___SERVICING -eq 1 ]; then
kprompt "MODE" "\n${sc4}will this bot use matrix services?${sc5} " "matrix" 1 0 0; RESULT=$?
if [ $RESULT -eq 9 ]; then
MATRIX___SERVICING=0
fi
fi
if [ $DISCORD__SERVICING -eq 1 ]; then
kprompt "MODE" "\n${sc4}will this bot use discord services?${sc5} " "discord" 1 0 0; RESULT=$?
if [ $RESULT -eq 9 ]; then
DISCORD__SERVICING=0
fi
fi
if [ $TELEGRAM_SERVICING -eq 1 ]; then
kprompt "MODE" "\n${sc4}will this bot use telegram services?${sc5} " "telegram" 1 0 0; RESULT=$?
if [ $RESULT -eq 9 ]; then
TELEGRAM_SERVICING=0
fi
fi
if [ $YOUTUBE__SERVICING -eq 1 ]; then
kprompt "MODE" "\n${sc4}will this bot use youtube services?${sc5} " "youtube" 1 0 0; RESULT=$?
if [ $RESULT -eq 9 ]; then
YOUTUBE__SERVICING=0
fi
fi
if [ $TWITTER__SERVICING -eq 1 ]; then
kprompt "MODE" "\n${sc4}will this bot use twitter services?${sc5} " "twitter" 1 0 0; RESULT=$?
if [ $RESULT -eq 9 ]; then
TWITTER__SERVICING=0
fi
fi
if [ $CRYPTO___SERVICING -eq 1 ]; then
kprompt "MODE" "\n${sc4}will this bot use cryptocompare services?${sc5} " "cryptocompare" 1 0 0; RESULT=$?
if [ $RESULT -eq 9 ]; then
CRYPTO___SERVICING=0
fi
fi
if [ $OPENAI___SERVICING -eq 1 ]; then
kprompt "MODE" "\n${sc4}will this bot use openai services?${sc5} " "openai" 1 0 0; RESULT=$?
if [ $RESULT -eq 9 ]; then
OPENAI___SERVICING=0
fi
fi
cat activate|grep "export"|grep "="|grep HYDRA > /dev/null 2>&1
if [ $? -eq 0 ]; then
SASL_____SERVICING=1
NICKSERV_SERVICING=0
else
if [ $SASL_____SERVICING -eq 1 ]; then
kprompt "MODE" "\n${sc4}will this bot use sasl services?${sc5} " "sasl" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
SASL_____SERVICING=1
NICKSERV_SERVICING=0
else
if [ $NICKSERV_SERVICING -eq 1 ]; then
kprompt "MODE" "\n${sc4}will this bot use nickserv services?${sc5} " "nickserv" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
NICKSERV_SERVICING=1
SASL_____SERVICING=0
else
NICKSERV_SERVICING=0
SASL_____SERVICING=0
fi
fi
fi
fi
fi
kprompt "MODE" "\n${sc4}remove local activate file found in local directory?${sc5} " "local activate file" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
echo -e "\n${sc3}+ ${sc1}removing local activate file"
rm activate
else
echo -e "\n${sc3}+ ${sc1}keeping local activate file"
fi
return
fi
fi
#############################################################################################################
#############################################################################################################
if [ $CMD_SERVICES_MODE -eq 1 ]; then
#####################################################################################################
#####################################################################################################
echo -e "\n${sc1}[ ${sc2}HYDRA MODE ${sc1}]"
HYDRA____SERVICING=1
SASL_____SERVICING=1
NICKSERV_SERVICING=0
#####################################################################################################
#####################################################################################################
if [ $HYDRA_BOT -eq 0 ]; then
echo -e "export HYDRA_DESIGNATION=core" >> storage/user/credentials/activate__hydra_core__standalone
echo -e "export HYDRA_DESIGNATION=dupe" >> storage/user/credentials/activate__hydra_dupe__services
echo -e "export HYDRA_DESIGNATION=dupe" >> storage/user/credentials/activate__hydra_dupe__devops
echo -e 'export HYDRA_PURPOSE="core - keep uptime and designate tasks"' >> storage/user/credentials/activate__hydra_core__standalone
echo -e 'export HYDRA_PURPOSE="services - runs the ai"' >> storage/user/credentials/activate__hydra_dupe__services
fi
#####################################################################################################
#####################################################################################################
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "${sc4}hydra irc homechannel${sc1}" "\n${sc1}[${sc2} hydra irc homechannel ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} #b0ts3x" 1 3 0; RESULT=$?
echo -e "export HYDRA_HOME=$REPLY" >> storage/user/credentials/activate__hydra_core__standalone
echo -e "export HYDRA_HOME=$REPLY" >> storage/user/credentials/activate__hydra_dupe__services
echo -e "export HYDRA_HOME=$REPLY" >> storage/user/credentials/activate__hydra_dupe__devops
fi
#####################################################################################################
#####################################################################################################
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "${sc4}sasl username${sc1}" "\n${sc1}[ ${sc2}sasl username ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} username" 1 3 0; RESULT=$?
echo -e "export BOT_SASL_USERNAME=$REPLY" >> storage/user/credentials/activate__hydra_core__standalone
echo -e "export BOT_SASL_USERNAME=$REPLY" >> storage/user/credentials/activate__hydra_dupe__services
echo -e "export BOT_SASL_USERNAME=$REPLY" >> storage/user/credentials/activate__hydra_dupe__devops
echo -e "export BOT_SASL_USERNAME=$REPLY" >> activation
echo -e "export NICKSERV_USERNAME=$REPLY" >> storage/user/credentials/activate__hydra_core__standalone
echo -e "export NICKSERV_USERNAME=$REPLY" >> storage/user/credentials/activate__hydra_dupe__services
echo -e "export NICKSERV_USERNAME=$REPLY" >> storage/user/credentials/activate__hydra_dupe__devops
echo -e "export NICKSERV_USERNAME=$REPLY" >> activation
fi
#####################################################################################################
#####################################################################################################
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "${sc4}sasl password${sc1}" "\n${sc1}[ ${sc2}sasl password ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} password" 1 3 0; RESULT=$?
echo -e "export BOT_SASL_PASSWORD=$REPLY" >> storage/user/credentials/activate__hydra_core__standalone
echo -e "export BOT_SASL_PASSWORD=$REPLY" >> storage/user/credentials/activate__hydra_dupe__services
echo -e "export BOT_SASL_PASSWORD=$REPLY" >> storage/user/credentials/activate__hydra_dupe__devops
echo -e "export BOT_SASL_PASSWORD=$REPLY" >> activation
echo -e "export NICKSERV_PASSWORD=$REPLY" >> storage/user/credentials/activate__hydra_core__standalone
echo -e "export NICKSERV_PASSWORD=$REPLY" >> storage/user/credentials/activate__hydra_dupe__services
echo -e "export NICKSERV_PASSWORD=$REPLY" >> storage/user/credentials/activate__hydra_dupe__devops
echo -e "export NICKSERV_PASSWORD=$REPLY" >> activation
fi
#####################################################################################################
#####################################################################################################
else
#####################################################################################################
#####################################################################################################
echo -e "\n${sc1}[ ${sc2}NON-HYDRA MODE ${sc1}]"
HYDRA____SERVICING=0
#####################################################################################################
#####################################################################################################
[ -e activation ] && rm activation
#####################################################################################################
#####################################################################################################
kprompt "MODE" "\n${sc4}will this bot use sasl services?${sc5} " "sasl" 1 0 0; RESULT=$?
#####################################################################################################
#####################################################################################################
if [ $RESULT -eq 0 ]; then
kprompt "MODE" "${sc4}sasl username${sc1}" "\n${sc1}[ ${sc2}sasl username ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} username" 1 3 0; RESULT=$?
echo -e "export BOT_SASL_USERNAME=$REPLY" >> activation
kprompt "MODE" "${sc4}sasl password${sc1}" "${sc1}[ ${sc2}sasl password ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} password" 1 3 0; RESULT=$?
echo -e "export BOT_SASL_PASSWORD=$REPLY" >> activation
SASL_____SERVICING=1
NICKSERV_SERVICING=0
else
#############################################################################################
#############################################################################################
SASL_____SERVICING=0
#############################################################################################
#############################################################################################
kprompt "MODE" "\n${sc4}will this bot use nickserv services?${sc5} " "nickserv" 1 0 0; RESULT=$?
#############################################################################################
#############################################################################################
if [ $RESULT -eq 0 ]; then
kprompt "MODE" "${sc4}nickserv username${sc1}" "\n${sc1}[ ${sc2}nickserv username ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} username" 1 3 0; RESULT=$?
echo -e "export NICKSERV_USERNAME=$REPLY" >> activation
kprompt "MODE" "${sc4}nickserv password${sc1}" "${sc1}[ ${sc2}nickserv password ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} password" 1 3 0; RESULT=$?
echo -e "export NICKSERV_PASSWORD=$REPLY" >> activation
NICKSERV_SERVICING=1
else
#####################################################################################
#####################################################################################
NICKSERV_SERVICING=0
#####################################################################################
#####################################################################################
fi
fi
fi
#############################################################################################################
#############################################################################################################
if [ ! $1 -eq 1 ]; then
#############################################################################################################
#############################################################################################################
kprompt "MODE" "\n${sc4}will this bot use matrix services?${sc5} " "matrix" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "matrix homeserver${sc1}" "\n${sc1}[${sc2} matrix homeserver ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} https://matrix.org" 1 3 0; RESULT=$?
echo -e "export MATRIX_HOMESERVER=$REPLY" >> activation
kprompt "MODE" "matrix username${sc1}" "${sc1}[${sc2} matrix username ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} whatever username you setup" 1 3 0; RESULT=$?
echo -e "export MATRIX___USERNAME=$REPLY" >> activation
kprompt "MODE" "matrix password${sc1}" "${sc1}[${sc2} matrix password ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} whatever password you setup for this username" 1 3 0; RESULT=$?
echo -e "export MATRIX___PASSWORD=$REPLY" >> activation
fi
MATRIX___SERVICING=1
else
MATRIX___SERVICING=0
fi
#############################################################################################################
#############################################################################################################
kprompt "MODE" "\n${sc4}will this bot use discord services?${sc5} " "discord" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "discord_token${sc1}" "\n${sc1}[${sc2} discord token ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} OTAzOTU4NjQyNTIzNTI5MjM2.GXqwzj.Rnv8RudPRnv5jAeVu4dPnIl6TpSER7Eez5RZze" 1 3 0; RESULT=$?
echo -e "export DISCORD__TOKEN=$REPLY" >> activation
kprompt "MODE" "channel_id${sc1}" "${sc1}]${sc2} channel_id ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} 1009465637633929222" 1 3 0; RESULT=$?
echo -e "export DISCORD__SCHAN=$REPLY" >> activation
fi
DISCORD__SERVICING=1
else
DISCORD__SERVICING=0
fi
#############################################################################################################
#############################################################################################################
kprompt "MODE" "\n${sc4}will this bot use telegram services?${sc5} " "discord" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "telegram_token${sc1}" "\n${sc1}[${sc2} telegram token ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} 5405833579:AAHvEUc1hms29JBoJDhoGBUE8Ept8dBrZr5" 1 3 0; RESULT=$?
echo -e "export TELEGRAM_TOKEN=$REPLY" >> activation
fi
TELEGRAM_SERVICING=1
else
TELEGRAM_SERVICING=0
fi
#############################################################################################################
#############################################################################################################
kprompt "MODE" "\n${sc4}will this bot use youtube services?${sc5} " "youtube" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "developer_key${sc1}" "\n${sc1}[${sc2} youtube api key ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} AIzaSyDmlgOry16XSTIVmm9au06YJDOmNrAZeRz" 1 3 0; RESULT=$?
echo -e "export YOUTUBE_DEVELOPER_KEY=$REPLY" >> activation
fi
YOUTUBE__SERVICING=1
else
YOUTUBE__SERVICING=0
fi
#############################################################################################################
#############################################################################################################
kprompt "MODE" "\n${sc4}will this bot use twitter services?${sc5} " "twitter" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "consumer_key${sc1}" "\n${sc1}[${sc2} twitter api key ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} RMIn8DlEGhhJJBCRovD7RezZR" 1 3 0; RESULT=$?
echo -e "export TWITTER_CONSUMER_KEY=$REPLY" >> activation
kprompt "MODE" "consumer_secret${sc1}" "${sc1}[${sc2} twitter api key ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} Uc5X87M7kIah0mPucdQVFJZrPWvtIvmZPR9x2L4QPLpZdd3ZzD" 1 3 0; RESULT=$?
echo -e "export TWITTER_CONSUMER_SECRET=$REPLY" >> activation
kprompt "MODE" "access_token_key${sc1}" "${sc1}[${sc2} twitter api key ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} 1032240340353188844-yqnMN7ulbgsc4yWUYM0yxAbDdDeeeZ" 1 3 0; RESULT=$?
echo -e "export TWITTER_ACCESS_TOKEN_KEY=$REPLY" >> activation
kprompt "MODE" "access_token_secret${sc1}" "${sc1}[${sc2} twitter api key ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} UhlWXud7RTHRdSxdVQWgEBfC9GHmG5tcYos5lq3Zee77E" 1 3 0; RESULT=$?
echo -e "export TWITTER_ACCESS_TOKEN_SECRET=$REPLY" >> activation
fi
TWITTER__SERVICING=1
else
TWITTER__SERVICING=0
fi
#############################################################################################################
#############################################################################################################
kprompt "MODE" "\n${sc4}will this bot use cryptocompare services?${sc5} " "cryptocompare" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "\ncryptocompare_key${sc1}" "${sc1}[${sc2} cryptocompare key ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} 8wXfZYl4cN4iSmKsRVOhXDCVxF9wZ8c7Qy4o4bKgTVpcplq9Q8oId0mY" 1 3 0; RESULT=$?
echo -e "export CRYPTOCOMPARE_KEY=$REPLY" >> activation
fi
CRYPTO___SERVICING=1
else
CRYPTO___SERVICING=0
fi
#############################################################################################################
#############################################################################################################
kprompt "MODE" "\n${sc4}will this bot use openai services?${sc5} " "openai" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
if [ $HYDRA_BOT -eq 0 ]; then
kprompt "MODE" "openai_key${sc1}" "\n${sc1}[${sc2} openai api key ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} XDtj5CZLexa6Pfh8qLf9RdshVqStK6yuonIsNGhO1wJVf7Z7BxR" 1 3 0; RESULT=$?
echo -e "export OPENAI_KEY=$REPLY" >> activation
fi
OPENAI___SERVICING=1
else
OPENAI___SERVICING=0
fi
fi
#############################################################################################################
#############################################################################################################
if [ -e env/bin ]; then
[ -e activation ] && cat activation >> env/bin/activate
fi
#############################################################################################################
#############################################################################################################
if [ $HYDRA_BOT -eq 0 ]; then
[ -e activation ] && cat activation|grep -v SASL|grep -v NICKSERV >> storage/user/credentials/activate__hydra_core__standalone
[ -e activation ] && cat activation|grep -v SASL|grep -v NICKSERV >> storage/user/credentials/activate__hydra_dupe__services
[ -e activation ] && cat activation|grep -v SASL|grep -v NICKSERV >> storage/user/credentials/activate__hydra_dupe__devops
fi
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_setup () {
#############################################################################################################
#############################################################################################################
if [ $INIT -eq 0 ]; then
#####################################################################################################
#####################################################################################################
M0="${sc2}CHOOSE ${sc3}"
M1="${sc4}1${sc1})${sc5} HYDRA\n"
M2="${sc4}2${sc1})${sc5} NON${sc1}-${sc5}HYDRA"
#####################################################################################################
#####################################################################################################
kprompt "MODE" "\n${M0}" "\n${M1}${M2}" 1 1 0; RESULT=$?
#####################################################################################################
#####################################################################################################
if [ $RESULT -eq 1 ]; then
CMD_SERVICES_MODE=1
BOTMODE=0
cmd_setup_bot
#####################################################################################################
#####################################################################################################
elif [ $RESULT -eq 2 ]; then
(kmode 0);
CMD_SERVICES_MODE=0
cmd_services 0 0
if [ ! -e plugins ]; then
mkdir plugins
cat storage/bot/variants/default/bot_maple__default__initial_plugins.txt|grep -v "#"|grep -v irc3|sed s/plugins.//|xargs -I{} cp storage/bot/plugins/{}.py plugins/
cat plugins/net_irc_plugin.py|sed '/includes/r storage/bot/variants/default/bot_maple__default__initial_plugins.txt' > plugins/net_irc_plugin.tmp;mv plugins/net_irc_plugin.tmp plugins/net_irc_plugin.py
BOTMODE=1
cmd_setup_botmode
fi;
fi;
fi;
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_setup_botmode () {
#############################################################################################################
#############################################################################################################
if [ $DISCORD__SERVICING -eq 0 ]; then
cat plugins/tool_bus_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=False"/g > plugins/tool_bus_plugin.tmp;mv plugins/tool_bus_plugin.tmp plugins/tool_bus_plugin.py
cat plugins/cmd_irc_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=False"/g > plugins/cmd_irc_plugin.tmp;mv plugins/cmd_irc_plugin.tmp plugins/cmd_irc_plugin.py
cat plugins/net_discord_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=False"/g > plugins/net_discord_plugin.tmp;mv plugins/net_discord_plugin.tmp plugins/net_discord_plugin.py
cat plugins/tool_dims_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=False"/g > plugins/tool_dims_plugin.tmp;mv plugins/tool_dims_plugin.tmp plugins/tool_dims_plugin.py
if [ $BOTMODE -eq 1 ]; then
cat bot_maple.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=False"/g > bot_maple.tmp;mv bot_maple.tmp bot_maple.py
fi
else
cat plugins/tool_bus_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=True"/g > plugins/tool_bus_plugin.tmp;mv plugins/tool_bus_plugin.tmp plugins/tool_bus_plugin.py
cat plugins/cmd_irc_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=True"/g > plugins/cmd_irc_plugin.tmp;mv plugins/cmd_irc_plugin.tmp plugins/cmd_irc_plugin.py
cat plugins/net_discord_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=True"/g > plugins/net_discord_plugin.tmp;mv plugins/net_discord_plugin.tmp plugins/net_discord_plugin.py
cat plugins/tool_dims_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=True"/g > plugins/tool_dims_plugin.tmp;mv plugins/tool_dims_plugin.tmp plugins/tool_dims_plugin.py
if [ $BOTMODE -eq 1 ]; then
cat bot_maple.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=True"/g > bot_maple.tmp;mv bot_maple.tmp bot_maple.py
fi
fi
#############################################################################################################
#############################################################################################################
if [ $TELEGRAM_SERVICING -eq 0 ]; then
cat plugins/tool_bus_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=False"/g > plugins/tool_bus_plugin.tmp;mv plugins/tool_bus_plugin.tmp plugins/tool_bus_plugin.py
cat plugins/cmd_irc_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=False"/g > plugins/cmd_irc_plugin.tmp;mv plugins/cmd_irc_plugin.tmp plugins/cmd_irc_plugin.py
cat plugins/tool_dims_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=False"/g > plugins/tool_dims_plugin.tmp;mv plugins/tool_dims_plugin.tmp plugins/tool_dims_plugin.py
[ -e plugins/net_telegram_plugin.py ] && cat plugins/net_telegram_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=False"/g > plugins/net_telegram_plugin.tmp;mv plugins/net_telegram_plugin.tmp plugins/net_telegram_plugin.py
if [ $BOTMODE -eq 1 ]; then
cat bot_maple.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=False"/g > bot_maple.tmp;mv bot_maple.tmp bot_maple.py
fi
else
cat plugins/tool_bus_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=True"/g > plugins/tool_bus_plugin.tmp;mv plugins/tool_bus_plugin.tmp plugins/tool_bus_plugin.py
cat plugins/cmd_irc_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=True"/g > plugins/cmd_irc_plugin.tmp;mv plugins/cmd_irc_plugin.tmp plugins/cmd_irc_plugin.py
cat plugins/tool_dims_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=True"/g > plugins/tool_dims_plugin.tmp;mv plugins/tool_dims_plugin.tmp plugins/tool_dims_plugin.py
cat plugins/net_telegram_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=True"/g > plugins/net_telegram_plugin.tmp;mv plugins/net_telegram_plugin.tmp plugins/net_telegram_plugin.py
if [ $BOTMODE -eq 1 ]; then
cat bot_maple.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=True"/g > bot_maple.tmp;mv bot_maple.tmp bot_maple.py
fi
fi
#############################################################################################################
#############################################################################################################
if [ $MATRIX___SERVICING -eq 0 ]; then
cat plugins/tool_bus_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > plugins/tool_bus_plugin.tmp;mv plugins/tool_bus_plugin.tmp plugins/tool_bus_plugin.py
cat plugins/cmd_irc_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > plugins/cmd_irc_plugin.tmp;mv plugins/cmd_irc_plugin.tmp plugins/cmd_irc_plugin.py
cat plugins/net_irc_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > plugins/net_irc_plugin.tmp;mv plugins/net_irc_plugin.tmp plugins/net_irc_plugin.py
cat plugins/tool_dims_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > plugins/tool_dims_plugin.tmp;mv plugins/tool_dims_plugin.tmp plugins/tool_dims_plugin.py
[ -e plugins/net_matrix_plugin.py ] && cat plugins/net_matrix_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > plugins/net_matrix_plugin.tmp;mv plugins/net_matrix_plugin.tmp plugins/net_matrix_plugin.py
if [ $BOTMODE -eq 1 ]; then
cat bot_maple.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > bot_maple.tmp;mv bot_maple.tmp bot_maple.py
fi
else
cat plugins/tool_bus_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=True"/g > plugins/tool_bus_plugin.tmp;mv plugins/tool_bus_plugin.tmp plugins/tool_bus_plugin.py
cat plugins/cmd_irc_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=True"/g > plugins/cmd_irc_plugin.tmp;mv plugins/cmd_irc_plugin.tmp plugins/cmd_irc_plugin.py
cat plugins/net_irc_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=True"/g > plugins/net_irc_plugin.tmp;mv plugins/net_irc_plugin.tmp plugins/net_irc_plugin.py
cat plugins/tool_dims_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=True"/g > plugins/tool_dims_plugin.tmp;mv plugins/tool_dims_plugin.tmp plugins/tool_dims_plugin.py
cat plugins/net_matrix_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=True"/g > plugins/net_matrix_plugin.tmp;mv plugins/net_matrix_plugin.tmp plugins/net_matrix_plugin.py
if [ $BOTMODE -eq 1 ]; then
cat bot_maple.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=True"/g > bot_maple.tmp;mv bot_maple.tmp bot_maple.py
fi
fi
#############################################################################################################
#############################################################################################################
if [ $TWITTER__SERVICING -eq 0 ]; then
cat plugins/url_grabber_plugin.py|sed s/"???TWITTER???"/"SERVICES_TWITTER=False"/g > plugins/url_grabber_plugin.tmp;mv plugins/url_grabber_plugin.tmp plugins/url_grabber_plugin.py
[ -e plugins/twitter_plugin.py ] && cat plugins/twitter_plugin.py|sed s/"???TWITTER???"/"SERVICES_TWITTER=False"/g > plugins/twitter_plugin.tmp;mv plugins/twitter_plugin.tmp plugins/twitter_plugin.py
else
cat plugins/url_grabber_plugin.py|sed s/"???TWITTER???"/"SERVICES_TWITTER=True"/g > plugins/url_grabber_plugin.tmp;mv plugins/url_grabber_plugin.tmp plugins/url_grabber_plugin.py
cat plugins/twitter_plugin.py|sed s/"???TWITTER???"/"SERVICES_TWITTER=True"/g > plugins/twitter_plugin.tmp;mv plugins/twitter_plugin.tmp plugins/twitter_plugin.py
fi
#############################################################################################################
#############################################################################################################
if [ $CMD_SERVICES_MODE -eq 1 ]; then
if [ $HYDRA____SERVICING -eq 0 ]; then
[ -e plugins/net_hydra_plugin.py ] && cat plugins/net_hydra_plugin.py|sed s/"???HYDRA???"/"SERVICES_HYDRA=False"/g > plugins/net_hydra_plugin.tmp;mv plugins/net_hydra_plugin.tmp plugins/net_hydra_plugin.py
else
cat plugins/net_hydra_plugin.py|sed s/"???HYDRA???"/"SERVICES_HYDRA=True"/g > plugins/net_hydra_plugin.tmp;mv plugins/net_hydra_plugin.tmp plugins/net_hydra_plugin.py
fi
fi
#############################################################################################################
#############################################################################################################
if [ $OPENAI___SERVICING -eq 0 ]; then
[ -e plugins/openai_plugin.py ] && cat plugins/openai_plugin.py|sed s/"???OPENAI???"/"SERVICES_OPENAI=False"/g > plugins/openai_plugin.tmp;mv plugins/openai_plugin.tmp plugins/openai_plugin.py
else
cat plugins/openai_plugin.py|sed s/"???OPENAI???"/"SERVICES_OPENAI=True"/g > plugins/openai_plugin.tmp;mv plugins/openai_plugin.tmp plugins/openai_plugin.py
fi
#############################################################################################################
#############################################################################################################
if [ $CRYPTO___SERVICING -eq 0 ]; then
[ -e plugins/crypto_plugin.py ] && cat plugins/crypto_plugin.py|sed s/"???CRYPTOCOMPARE???"/"SERVICES_CRYPTOCOMPARE=False"/g > plugins/crypto_plugin.tmp;mv plugins/crypto_plugin.tmp plugins/crypto_plugin.py
else
cat plugins/crypto_plugin.py|sed s/"???CRYPTOCOMPARE???"/"SERVICES_CRYPTOCOMPARE=True"/g > plugins/crypto_plugin.tmp;mv plugins/crypto_plugin.tmp plugins/crypto_plugin.py
fi
#############################################################################################################
#############################################################################################################
if [ $NICKSERV_SERVICING -eq 0 ]; then
[ -e plugins/auth_nickserv_plugin.py ] && cat plugins/auth_nickserv_plugin.py|sed s/"???AUTHNICKSERV???"/"SERVICES_AUTHNICKSERV=False"/g > plugins/auth_nickserv_plugin.tmp;mv plugins/auth_nickserv_plugin.tmp plugins/auth_nickserv_plugin.py
else
[ -e plugins/auth_nickserv_plugin.py ] && cat plugins/auth_nickserv_plugin.py|sed s/"???AUTHNICKSERV???"/"SERVICES_AUTHNICKSERV=True"/g > plugins/auth_nickserv_plugin.tmp;mv plugins/auth_nickserv_plugin.tmp plugins/auth_nickserv_plugin.py
fi
#############################################################################################################
#############################################################################################################
if [ $SASL_____SERVICING -eq 0 ]; then
[ -e plugins/auth_sasl_plugin.py ] && cat plugins/auth_sasl_plugin.py|sed s/"???AUTHSASL???"/"SERVICES_AUTHSASL=False"/g > plugins/auth_sasl_plugin.tmp;mv plugins/auth_sasl_plugin.tmp plugins/auth_sasl_plugin.py
else
cat plugins/auth_sasl_plugin.py|sed s/"???AUTHSASL???"/"SERVICES_AUTHSASL=True"/g > plugins/auth_sasl_plugin.tmp;mv plugins/auth_sasl_plugin.tmp plugins/auth_sasl_plugin.py
fi
#############################################################################################################
#############################################################################################################
if [ $YOUTUBE__SERVICING -eq 0 ]; then
cat plugins/url_grabber_plugin.py|sed s/"???YOUTUBE???"/"SERVICES_YOUTUBE=False"/g > plugins/url_grabber_plugin.tmp;mv plugins/url_grabber_plugin.tmp plugins/url_grabber_plugin.py
cat plugins/twitter_plugin.py|sed s/"???YOUTUBE???"/"SERVICES_YOUTUBE=False"/g > plugins/twitter_plugin.tmp;mv plugins/twitter_plugin.tmp plugins/twitter_plugin.py
cat plugins/boombox_plugin.py|sed s/"???YOUTUBE???"/"SERVICES_YOUTUBE=False"/g > plugins/boombox_plugin.tmp;mv plugins/boombox_plugin.tmp plugins/boombox_plugin.py
[ -e plugins/youtube_plugin.py ] && cat plugins/youtube_plugin.py|sed s/"???YOUTUBE???"/"SERVICES_YOUTUBE=False"/g > plugins/youtube_plugin.tmp;mv plugins/youtube_plugin.tmp plugins/youtube_plugin.py
else
cat plugins/url_grabber_plugin.py|sed s/"???YOUTUBE???"/"SERVICES_YOUTUBE=True"/g > plugins/url_grabber_plugin.tmp;mv plugins/url_grabber_plugin.tmp plugins/url_grabber_plugin.py
cat plugins/twitter_plugin.py|sed s/"???YOUTUBE???"/"SERVICES_YOUTUBE=True"/g > plugins/twitter_plugin.tmp;mv plugins/twitter_plugin.tmp plugins/twitter_plugin.py
cat plugins/boombox_plugin.py|sed s/"???YOUTUBE???"/"SERVICES_YOUTUBE=True"/g > plugins/boombox_plugin.tmp;mv plugins/boombox_plugin.tmp plugins/boombox_plugin.py
cat plugins/youtube_plugin.py|sed s/"???YOUTUBE???"/"SERVICES_YOUTUBE=True"/g > plugins/youtube_plugin.tmp;mv plugins/youtube_plugin.tmp plugins/youtube_plugin.py
fi
#############################################################################################################
#############################################################################################################
if [ ! -e databases ]; then
cp -Rf storage/bot/databases databases
fi;
}
#####################################################################################################################
#####################################################################################################################
cmd_setup_bot () {
#############################################################################################################
#############################################################################################################
if [ $INIT = 0 ]; then
#####################################################################################################
#####################################################################################################
M0="${sc2}CHOOSE ${sc3}"
M1="${sc4}1${sc1})${sc5} DUPE ${sc1}- ${sc5}SERVICES\n"
M2="${sc4}2${sc1})${sc5} CORE ${sc1}- ${sc5}STRIPPED\n"
M3="${sc4}3${sc1})${sc5} DUPE ${sc1}- ${sc5}DEVOPS"
#####################################################################################################
#####################################################################################################
kprompt "MODE" "\n${M0}" "\n${M1}${M2}${M3}" 1 2 0; RESULT=$?
#####################################################################################################
#####################################################################################################
if [ $RESULT -eq 1 ]; then
(kmode 2);
[ -e storage/user/config/hydra.key ] || cmd_hydra;
if [ ! -e plugins ]; then
cmd_services 0 2
mkdir plugins
cat storage/bot/variants/dupe/bot_maple__services__initial_plugins.txt|grep -v "#"|grep -v irc3|sed s/plugins.//|xargs -I{} cp storage/bot/plugins/{}.py plugins/
BOTMODE=1
cmd_setup_botmode
cat plugins/net_irc_plugin.py|sed '/includes/r storage/bot/variants/dupe/bot_maple__services__initial_plugins.txt' > plugins/net_irc_plugin.tmp;mv plugins/net_irc_plugin.tmp plugins/net_irc_plugin.py
cat storage/user/credentials/activate__hydra_dupe__services >> env/bin/activate
if [ -z $TOKEN ]; then
kprompt "MODE" "${sc4}""\nneed an online token credential pak?${sc5} " "credential pak" 1 0 0; RESULT=$?
if [ $RESULT -eq 0 ]; then
cmd_hydra_dak;
fi;
fi
fi;
#####################################################################################################
#####################################################################################################
elif [ $RESULT -eq 2 ]; then
(kmode 1);
[ -e storage/user/config/hydra.key ] || cmd_hydra;
if [ ! -e plugins ]; then
cmd_services 1 1
mkdir plugins
cat storage/bot/variants/core/bot_maple__core__initial_plugins.txt|grep -v "#"|grep -v irc3|sed s/plugins.//|xargs -I{} cp storage/bot/plugins/{}.py plugins/
cat bot_maple.ini|sed '/includes/r storage/bot/variants/core/bot_maple__core__initial_plugins.txt' > bot_maple.tmp;mv bot_maple.tmp bot_maple.ini
cat storage/user/credentials/activate__hydra_core__standalone >> env/bin/activate
if [ $HYDRA____SERVICING -eq 0 ]; then
cat plugins/net_hydra_plugin.py|sed s/"???HYDRA???"/"SERVICES_HYDRA=False"/g > plugins/net_hydra_plugin.tmp;mv plugins/net_hydra_plugin.tmp plugins/net_hydra_plugin.py
else
cat plugins/net_hydra_plugin.py|sed s/"???HYDRA???"/"SERVICES_HYDRA=True"/g > plugins/net_hydra_plugin.tmp;mv plugins/net_hydra_plugin.tmp plugins/net_hydra_plugin.py
cat plugins/auth_sasl_plugin.py|sed s/"???AUTHSASL???"/"SERVICES_AUTHSASL=True"/g > plugins/auth_sasl_plugin.tmp;mv plugins/auth_sasl_plugin.tmp plugins/auth_sasl_plugin.py
fi
fi;
if [ ! -e databases ]; then
cp -Rf storage/bot/databases databases
fi;
#####################################################################################################
#####################################################################################################
elif [ $RESULT -eq 3 ]; then
(kmode 3);
[ -e storage/user/config/hydra.key ] || cmd_hydra;
cmd_services 1 3
cat storage/user/credentials/activate__hydra_dupe__devops >> env/bin/activate
kprompt "MODE" "${sc4}devops purpose${sc5}" "\n${sc1}[${sc2} devops purpose ${sc1}]${sc3} - ${sc5}example${sc4}:${sc3} doing development" 1 3 0; RESULT=$?
PURPOSE="devops - $REPLY"
echo -e "export HYDRA_PURPOSE='$PURPOSE'" >> env/bin/activate
if [ ! -e plugins ]; then
mkdir plugins
cat storage/bot/variants/dupe/bot_maple__devops__initial_plugins.txt|grep -v "#"|grep -v irc3|sed s/plugins.//|xargs -I{} cp storage/bot/plugins/{}.py plugins/
cat plugins/net_irc_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=False"/g > plugins/net_irc_plugin.tmp;mv plugins/net_irc_plugin.tmp plugins/net_irc_plugin.py
cat plugins/net_irc_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > plugins/net_irc_plugin.tmp;mv plugins/net_irc_plugin.tmp plugins/net_irc_plugin.py
cat plugins/net_irc_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=False"/g > plugins/net_irc_plugin.tmp;mv plugins/net_irc_plugin.tmp plugins/net_irc_plugin.py
cat plugins/tool_dims_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=False"/g > plugins/tool_dims_plugin.tmp;mv plugins/tool_dims_plugin.tmp plugins/tool_dims_plugin.py
cat plugins/tool_dims_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > plugins/tool_dims_plugin.tmp;mv plugins/tool_dims_plugin.tmp plugins/tool_dims_plugin.py
cat plugins/tool_dims_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=False"/g > plugins/tool_dims_plugin.tmp;mv plugins/tool_dims_plugin.tmp plugins/tool_dims_plugin.py
cat plugins/tool_bus_plugin.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=False"/g > plugins/tool_bus_plugin.tmp;mv plugins/tool_bus_plugin.tmp plugins/tool_bus_plugin.py
cat plugins/tool_bus_plugin.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > plugins/tool_bus_plugin.tmp;mv plugins/tool_bus_plugin.tmp plugins/tool_bus_plugin.py
cat plugins/tool_bus_plugin.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=False"/g > plugins/tool_bus_plugin.tmp;mv plugins/tool_bus_plugin.tmp plugins/tool_bus_plugin.py
cat bot_maple.py|sed s/"???TELEGRAM???"/"SERVICES_TELEGRAM=False"/g > bot_maple.tmp;mv bot_maple.tmp bot_maple.py
cat bot_maple.py|sed s/"???MATRIX???"/"SERVICES_MATRIX=False"/g > bot_maple.tmp;mv bot_maple.tmp bot_maple.py
cat bot_maple.py|sed s/"???DISCORD???"/"SERVICES_DISCORD=False"/g > bot_maple.tmp;mv bot_maple.tmp bot_maple.py
cat plugins/net_irc_plugin.py|sed '/includes/r storage/bot/variants/dupe/bot_maple__devops__initial_plugins.txt' > plugins/net_irc_plugin.tmp;mv plugins/net_irc_plugin.tmp plugins/net_irc_plugin.py
if [ $HYDRA____SERVICING -eq 0 ]; then
cat plugins/net_hydra_plugin.py|sed s/"???HYDRA???"/"SERVICES_HYDRA=False"/g > plugins/net_hydra_plugin.tmp;mv plugins/net_hydra_plugin.tmp plugins/net_hydra_plugin.py
else
cat plugins/net_hydra_plugin.py|sed s/"???HYDRA???"/"SERVICES_HYDRA=True"/g > plugins/net_hydra_plugin.tmp;mv plugins/net_hydra_plugin.tmp plugins/net_hydra_plugin.py
cat plugins/auth_sasl_plugin.py|sed s/"???AUTHSASL???"/"SERVICES_AUTHSASL=True"/g > plugins/auth_sasl_plugin.tmp;mv plugins/auth_sasl_plugin.tmp plugins/auth_sasl_plugin.py
fi
fi;
if [ ! -e databases ]; then
cp -Rf storage/bot/databases databases
fi;
fi;
fi;
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_start () {
#############################################################################################################
#############################################################################################################
echo -e "${sc1}[ ${sc2}running `cat storage/bot/status/status_id` ${sc1}]"
#############################################################################################################
#############################################################################################################
source env/bin/activate
#############################################################################################################
#############################################################################################################
[ -e storage/bot/status ] || (mkdir storage/bot/status)
MODE=$(cat storage/bot/status/status_id)
#############################################################################################################
#############################################################################################################
if [ "$MODE" = "hydra_core__standalone" ]; then
bash -c 'echo $$>r3kt.pid; exec irc3 plugins/bot_maple.ini & disown'
dip=`cat r3kt.pid`
dip=$((dip+1))
echo $dip>r3kt.pid
else
bash -c 'echo $$>r3kt.pid; exec python3 plugins/bot_maple.py & disown'
dip=`cat r3kt.pid`
dip=$((dip+1))
echo $dip>r3kt.pid
fi;
#############################################################################################################
#############################################################################################################
sid=$(cat storage/bot/status/status_id)
pid=$(cat *.pid)
echo -e "${sc1}[ ${sc2}${sid} bot added to background as a job - pid: ${pid} ${sc1}]"
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_stop () {
#############################################################################################################
#############################################################################################################
echo -e "${sc1}[ ${sc2}stopping `cat r3kt.pid` ${sc1}]"
pid=`cat r3kt.pid` && kill -9 $pid > /dev/null 2>&1
[ $? -eq 1 ] && kill -9 $(ps aux|grep bot_maple|grep -v grep|xargs|cut -f 2 -d ' ') > /dev/null 2>&1;
rm r3kt.pid;
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_cleanup () {
#############################################################################################################
#############################################################################################################
echo -e "${sc1}[ ${sc2}executed command - cleanup ${sc1}]"
#############################################################################################################
#############################################################################################################
[ -e bot_maple.py ] && (rm bot_maple.py)
[ -e models ] && (rm -Rf models)
[ -e personalities ] && (rm -Rf personalities)
[ -e env ] && (rm -Rf env)
[ -e plugins ] && (rm -Rf plugins)
[ -e databases ] && (rm -Rf databases)
rm -Rf storage/user/config/*
rm -Rf {data_,dr1p_}*
[ -e undak.py ] && (rm undak.py)
[ -e unkey.py ] && (rm unkey.py)
[ -e fifo ] && (rm -Rf fifo)
[ -e dak_tcp ] && (rm dak_tcp)
[ -e bot_maple.ini ] && (rm bot_maple.ini)
[ -e storage/bot/status/status_id ] && (rm storage/bot/status/status_id)
[ -e storage/user/credentials/activate__hydra_core__standalone ] && (rm storage/user/credentials/activate__hydra_core__standalone)
[ -e storage/user/credentials/activate__hydra_dupe__services ] && (rm storage/user/credentials/activate__hydra_dupe__services)
[ -e storage/user/credentials/activate__hydra_dupe__devops ] && (rm storage/user/credentials/activate__hydra_dupe__devops)
[ -e storage/bot/status ] && (rm -Rf storage/bot/status)
[ -e storage/user/status ] && (rm -Rf storage/user/status)
[ -e storage/user/config ] && (rm -Rf storage/user/config)
[ -e storage/user/credentials ] && (rm -Rf storage/user/credentials)
[ -e storage/user/logs/tcpac.log ] && (curl `cat storage/user/logs/tcpac.log|cut -f 2 -d ' '`)
[ -e storage/user/logs ] && (rm -Rf storage/user/logs)
[ -e r3kt.pid ] && (PID=`cat r3kt.pid`;rm r3kt.pid;kill -9 $PID > /dev/null 2>&1)
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
cmd_autosync () {
######################################################################################################### SOF
#############################################################################################################
# 1) if this is ran without a parameter services are stopped,
# local files are updated via github and then services restarted
# 2) if this is ran with a parameter ex: net_hydra_plugin.py,
# the plugin version from storage/bot/plugins is pushed to github
# 2) and then remote instances are updated locally from what we pushed from devops..
# this speeds up development/testing time.
#############################################################################################################
#############################################################################################################
COREKEY=maplenet; COREUSER=dr1p; COREHOST=saipro; COREBASE="~/maple";
DUPEKEY=maplenet; DUPEUSER=dr1p; DUPEHOST=saiosx; DUPEBASE="~/maple";
#############################################################################################################
#############################################################################################################
[ -z "$CMDARG" ] || (
FILENAME=$(basename `echo "$CMDARG"`);
find . -iname $FILENAME|grep "storage"|xargs -I{} git add {};
git commit -m 'script: autosync';
git pull;
git push; )
#############################################################################################################
#############################################################################################################
STOP="[ -e r3kt.pid ] && (./maple);"
CMD="git pull; diff -q plugins/ storage/bot/plugins/|grep differ|cut -f 4 -d ' '|grep -v discord|grep -v irc|xargs -I{} cp {} plugins/;"
START="./maple & disown"
ssh -i ~/.ssh/$COREKEY $COREUSER@$COREHOST "cd $COREBASE; $STOP $CMD $START"
ssh -i ~/.ssh/$DUPEKEY $DUPEUSER@$DUPEHOST "cd $DUPEBASE; $STOP $CMD $START"
#############################################################################################################
######################################################################################################### EOF
}
#####################################################################################################################
#####################################################################################################################
error () {
#############################################################################################################
#############################################################################################################
echo -e $(rgb 13 '+')" "$(rgb 9 'error'11) $1" "$(rgb 0)
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
help () {
#############################################################################################################
#############################################################################################################
COMMANDS=(setup start stop cleanup autosync);
#############################################################################################################
#############################################################################################################
[ $1 -eq 1 ] && echo -e $(rgb 13 '+')" "$(rgb 9 'commands'11) ${COMMANDS[*]}" "$(rgb 0)
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
prereq () {
#############################################################################################################
#############################################################################################################
echo -e "\n$(rgb 12 '[') $(rgb 13 'PREREQUISITES CHECK') $(rgb 12 ']') $(rgb 0)\n";
#############################################################################################################
#############################################################################################################
if [ -e preset ]; then
if [ -e preset/credentials ]; then
[ -e storage/user/credentials ] || (mkdir -p storage/user/credentials)
cp preset/credentials/* storage/user/credentials/
fi
fi
#############################################################################################################
#############################################################################################################
PREREQUISITES_PROGS=(jq nc)
FOUND_PROGS=()
#############################################################################################################
#############################################################################################################
for p in ${PREREQUISITES_PROGS[@]}; do
which $p >> /dev/null 2>&1
if [ $? -eq 0 ]; then
echo -e $(rgb 12 '+')" "$(rgb 9 'located '$p'')" "$(rgb 0)
else
FOUND_PROGS+=("$p")
fi
done
#############################################################################################################
#############################################################################################################
for p in ${FOUND_PROGS[@]}; do
MESSAGE="installation required"
[ "jq" == $p ] && echo -e "$(rgb 15 '-') $(rgb 14 'missing $p') $(rgb 13 '-') $(rgb 12 '$MESSAGE')"
[ "nc" == $p ] && echo -e "$(rgb 15 '-') $(rgb 14 'missing $p') $(rgb 13 '-') $(rgb 12 '$MESSAGE')"
done
#############################################################################################################
#############################################################################################################
[ 0 -ne "${#FOUND_PROGS[@]}" ] && echo -e "\n$(rgb 3 '[') $(rgb 4 'PREREQUISITES CHECK') $(rgb 5 '-') $(rgb 4 'FAILED') $(rgb 3 ']')\n"
[ 0 -ne "${#FOUND_PROGS[@]}" ] && exit
echo -e "\n$(rgb 12 '[') $(rgb 13 'PREREQUISITES CHECK') $(rgb 14 '-') $(rgb 15 'PASSED') $(rgb 12 ']')$(rgb 0)"
#############################################################################################################
#############################################################################################################
[ -e storage/bot/status ] || (mkdir -p storage/bot/status)
STATUS_ID="storage/bot/status/status_id";
[ -f $STATUS_ID ] && INIT=1;
#############################################################################################################
#############################################################################################################
}
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
# ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY #
# ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY #
# ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY POINT ENTRY #
#####################################################################################################################
#####################################################################################################################
#####################################################################################################################
if [ -z $1 ]; then
#############################################################################################################
#############################################################################################################
if [ ! -e plugins/bot_maple.ini ]; then
if [ ! -e plugins/bot_maple.py ]; then
prereq;
cmd_setup;
[ -e bot_maple.py ] && mv bot_maple.py plugins/bot_maple.py
[ -e bot_maple.ini ] && mv bot_maple.ini plugins/bot_maple.ini
kprompt "MODE" "${sc4}""\nlaunch this bot instance now?${sc5} " "launch bot instance" 1 0 0; RESULT=$?
if [ $RESULT -eq 9 ]; then
echo -e "\n${sc1}[ ${sc2}exiting ${sc1}]\n"
exit 1;
fi;
fi
elif [ ! -e plugins/bot_maple.py ]; then
if [ ! -e plugins/bot_maple.ini ]; then
prereq;
cmd_setup;
[ -e bot_maple.py ] && mv bot_maple.py plugins/bot_maple.py
[ -e bot_maple.ini ] && mv bot_maple.ini plugins/bot_maple.ini
kprompt "MODE" "${sc4}""\nlaunch this bot instance now?${sc5} " "launch bot instance" 1 0 0; RESULT=$?
if [ $RESULT -eq 9 ]; then
echo -e "\n${sc1}[ ${sc2}exiting ${sc1}]\n"
exit 1;
fi;
fi
fi
if [ ! -e r3kt.pid ]; then
cmd_start;
elif [ -e r3kt.pid ]; then
cmd_stop;
fi
#############################################################################################################
#############################################################################################################
else
#############################################################################################################
#############################################################################################################
if [ "$CMD" = "setup" ]; then
prereq;
cmd_setup;
[ -e bot_maple.py ] && mv bot_maple.py plugins/bot_maple.py
#############################################################################################################
#############################################################################################################
elif [ "$CMD" = "start" ]; then
cmd_start;
#############################################################################################################
#############################################################################################################
elif [ "$CMD" = "stop" ]; then
cmd_stop;
#############################################################################################################
#############################################################################################################
elif [ "$CMD" = "cleanup" ]; then
cmd_cleanup;
#############################################################################################################
#############################################################################################################
elif [ "$CMD" = "autosync" ]; then
cmd_autosync;
fi;
fi;
#####################################################################################################################
################################################################################################################# EOF