GhettoVCB - clone.sh Script

From The TinkerNet Wiki
Revision as of 22:34, 1 July 2020 by Tinker (talk | contribs)
Jump to navigation Jump to search

Do note that this is just the code to create the menu, no actual handling here. (Because sh, as implemented in ESXi is kinda limited...)

!/bin/sh

export PATH=/bin:/sbin

# ----------------------------------
# Step #1: Define variables
# ----------------------------------
RED='\033[0;41;30m'
STD='\033[0;0;39m'
VMName=$1
Destination="/vmfs/volumes/0-VMs"

# ----------------------------------
# Step #2: User defined function
# ----------------------------------
pause(){
   read -p "Press [Enter] key to continue..." fackEnterKey
}

clone(){
   echo "ghettoVCB/clone.sh is creating "$VMName" from "$BaseLine
   logger "ghettoVCB/clone.sh is creating "$VMName" from "$BaseLine

   echo "/vmfs/volumes/Admin/CloneMe/"$BaseLine/$BaseLine"-0;"$Destination";1;"$VMName > CloneIt
   /vmfs/volumes/Admin/Utilities/ghettoVCB/ghettoVCB-restore.sh -c CloneIt

   logger "ghettoVCB/clone.sh "$VMName" finished"
   echo "ghettoVCB/clone.sh "$VMName" finished"
}

# function to display menus
show_menus() {
   clear
   echo "Preparing to create "$VMName
   echo "Placing the VM on "$Destination
   echo "22:22, 1 July 2020 (EDT)22:22, 1 July 2020 (EDT)22:22, 1 July 2020 (EDT)22:22, 1 July 2020 (EDT)22:22, 1 July 2020 (EDT)"
   echo " Select your Baseline VM "
   echo "22:22, 1 July 2020 (EDT)22:22, 1 July 2020 (EDT)22:22, 1 July 2020 (EDT)22:22, 1 July 2020 (EDT)22:22, 1 July 2020 (EDT)"
   echo "1: Linux Mint 19.3"
   echo "2: SparkyLinux-CLI 5.11"
   echo "3: SparkyLinux-GUI 5.11"
   echo "4: Windows 10"
   echo "5: Windows 7"
   echo ""
   echo "0. Exit"
}

# read input from the keyboard and take an action
# Exit when user the user selects 0 form the menu option.                                       
read_options(){                                                           
   local choice                                                  
   read -p "Enter choice [ 1-5 or 0] " choice                      
   case $choice in                               
      1)   echo "Linux Mint 19.3"                                                               
            BaseLine="CloneMe-Mint-19.3"                                  
            clone                                                
            exit 0                                                 
            ;;                                   
      2)   echo "SparkyLinux-CLI 5.11"                                                          
            BaseLine="CloneMe-SparkyLinux-CLI-5.11"                       
            clone                                                
            exit 0                                                 
            ;;                                   
      3)   echo "SparkyLinux-GUI 5.11"                                                          
            BaseLine="CloneMe-SparkyLinux-GUI-5.11"                       
            clone                                                  
            exit 0                               
            ;;                                                                                  
      4)   echo "Windows 10"                                              
            BaseLine="CloneMe-Windows-10"          
            clone                                
            exit 0                             
            ;;                                   
      5)   echo "Windows 7"                              
            BaseLine="CloneMe-Windows-7"           
            clone                  
            exit 0                           
            ;;                                   
      0)   exit 0                                        
            ;;                                     
      *)   echo -e "${RED}Error...${STD}" && sleep 2
   esac                                      
}

# ----------------------------------------------
# Step #3: Trap CTRL+C, CTRL+Z and quit singles  
# ----------------------------------------------         
trap  SIGINT SIGQUIT SIGTSTP                     
                                                    
# -----------------------------------           
# Step #4: Main logic - infinite loop            
# -----------------------------------                    
while true                                         
   do                                               
      show_menus                                
      read_options                               
   done