Skip to content

Instantly share code, notes, and snippets.

@castironclay
Created July 14, 2021 14:37
Show Gist options
  • Save castironclay/cc66b87f9422cfb7783ded742169fea1 to your computer and use it in GitHub Desktop.
Save castironclay/cc66b87f9422cfb7783ded742169fea1 to your computer and use it in GitHub Desktop.
menu
#!/bin/bash
##
# Color Variables
##
green='\e[32m'
blue='\e[34m'
clear='\e[0m'
##
# Color Functions
##
ColorGreen(){
echo -ne $green$1$clear
}
ColorBlue(){
echo -ne $blue$1$clear
}
function select_project() {
project_menu(){
echo -ne "
$(ColorGreen "$1") Menu:
$(ColorGreen '1)') List details
$(ColorGreen '2)') Connect to hop0
$(ColorGreen '3)') Connect to hop1
$(ColorGreen '4)') Connect to hop2
$(ColorGreen '0)') Return to main menu
$(ColorBlue 'Choose an option:') "
read a
case $a in
1) list_details "$1" ; project_menu "$1" ;;
2) connect_out "$1" "0" ; project_menu "$1" ;;
3) connect_out "$1" "1" ; project_menu "$1" ;;
4) connect_out "$1" "2" ; project_menu "$1" ;;
0) menu ;;
*) echo -e $red"Wrong option."$clear; project_menu "$1";;
esac
}
project_menu "$1"
menu
}
function connect_out() {
IP=$(cat $1/stats.yml | grep hop$2_ip | awk -F ':' '{print $2}' | sed 's/^ *//g')
USERNAME=$(cat $1/stats.yml | grep username | awk -F ':' '{print $2}' | sed 's/"//g' | sed 's/^ *//g')
ssh -o ProxyCommand="connect-proxy -H 127.0.0.11:80 %h %p" -i $1/id_rsa $USERNAME@$IP
}
function list_details() {
clear
echo ""
cat $1/stats.yml
}
function manage_project() {
clear
echo ""
echo "Active Projects"
ls /skyhook/projects || echo "no current projects"
read -e -p "Project to manage: " project_name
if [ ${project_name: -1} = "/" ] # Drop trailing slash if present
then
project_name=${project_name::-1}
fi
select_project "$project_name"
}
function project_list() {
clear
echo ""
echo "Current projects are: "
ls /skyhook/projects || echo "no current projects"
}
function decommission() {
clear
echo ""
echo "Active Projects"
ls /skyhook/projects || echo "no current projects"
read -e -p "Project to decommission: " PROJECT
if [ ${PROJECT: -1} = "/" ] # Drop trailing slash if present
then
PROJECT=${PROJECT::-1}
fi
ansible-playbook /skyhook/ansible/playbooks/decommission.yml -e projectname=$PROJECT
}
function new_stack() {
cd /skyhook/ansible
ansible-playbook build.yml
}
function check_tor() {
curl https://www.wtfismyip.com/json
}
menu(){
echo -ne "
Skyhook Menu:
$(ColorGreen '1)') Active stacks
$(ColorGreen '2)') Decommission
$(ColorGreen '3)') New stack
$(ColorGreen '4)') Check Tor Status
$(ColorGreen '5)') Management
$(ColorGreen '0)') Exit
$(ColorBlue 'Choose an option:') "
read a
case $a in
1) project_list ; menu ;;
2) decommission ; menu ;;
3) new_stack ; menu ;;
4) check_tor ; menu ;;
5) manage_project ; menu ;;
0) exit 0 ;;
*) echo -e $red"Wrong option."$clear; menu;;
esac
}
cd /skyhook/projects
# Call the menu function
menu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment