#!/bin/bash

adb devices | sed -n '2,$p' | awk '{ print $1 }' > .temp/dev_list_temp  2> /dev/null
dev=(`cat .temp/dev_list_temp`)
dev=("${dev[@]}")
dev_1=$(echo "${dev[0]}")
dev_2=$(echo "${dev[1]}")
dev_3=$(echo "${dev[2]}")

## DEVICE MODEL EXTARCT ##

adb devices -l | grep model > .temp/dev_list_model_temp  2> /dev/null
model=(`cat .temp/dev_list_model_temp`)
model=("${model[@]}")
mod_1=$(echo "${model[4]}" | cut -c 7- )
mod_2=$(echo "${model[11]}" | cut -c 7- )
mod_3=$(echo "${model[18]}" | cut -c 7- )

if [ "$dev_1" == "" ]
    then
        total_dev=0
    else
        total_dev=1
        if [ "$dev_2" == "" ]
            then
                total_dev=1
            else
                total_dev=2
                if [ "$dev_3" == "" ]
                    then
                        total_dev=2
                    else
                        total_dev=3
                fi
        fi        
fi

#### DEVICE CHECK ####

if_file_exist_in_dev (){

    echo -e "\n\e[1;93mDon't include \e[1;92m/sdcard/\e[1;93m , Example :- \e[1;92mDownload/ashwini.pdf]\n"
    while [ 1 ]
        do    
            read -p $'\e[1;93mEnter the path in which you want to put in device : \e[0m' file_to_copy_path_dev
            if [ "$file_to_copy_path_dev" == "" ]
                then
                    echo -e "\e[91mPlease enter the path name plz....\n"
                    if_file_exist_in_dev
                else
                    tmp_chke=$(echo "if [ -d /sdcard/$file_to_copy_path_dev ]; then echo '0'; else echo '1'; fi" | adb -s $devvv shell)
                    if [ "$tmp_chke" == "0" ]
                        then
                            file_to_copy=0 
                            break
                        else
                            echo -e "\e[91mPlease enter the right path name plz....\n"
                            if_file_exist_in_dev
                    fi
            fi

    done

}


if_dir_exist_in_dev (){

    echo -e "\n\e[1;93mDon't include \e[1;92m/sdcard/\e[1;93m , Example :- \e[1;92mDownload/ashwini.pdf]\n"
    while [ 1 ]
        do    
            read -p $'\e[1;93mEnter the path in which you want to put in device : \e[0m' dir_to_copy_path_dev
            if [ "$dir_to_copy_path_dev" == "" ]
                then
                    echo -e "\e[91mPlease enter the path name plz....\n"
                    if_dir_exist_in_dev
                else
                    tmp_chkk=$(echo "if [ -d /sdcard/$dir_to_copy_path_dev ]; then echo '0'; else echo '1'; fi" | adb -s $devvv shell)
                    if [ "$tmp_chkk" == "0" ]
                        then
                            echo
                            break
                        else
                            echo -e "\e[91mPlease enter the right path name plz....\n"
                            if_dir_exist_in_dev
                    fi
            fi

    done

}

#### SYSTEM CHECK ####

if_file_exist_in_sys (){

    echo -e "\nExample :- \e[1;92m/home/User/Download/ashwini.pdf]\n"
    while [ 1 ]
        do    
            read -p $'\e[1;93mEnter the path of file which you want to push : \e[0m' file_to_copy_path
            if [ "$file_to_copy_path" == "" ]
                then
                    echo -e "\e[91mPlease enter the path name plz....\n"
                    if_file_exist_in_sys
                else
                    tmp_chk=$(if [ -f $file_to_copy_path ]; then echo '0'; else echo '1'; fi)
                    if [ "$tmp_chk" == "0" ]
                        then
                            if_file_exist_in_dev
                            break
                        else
                            echo -e "\e[91mPlease enter the right path name plz....\n"
                            if_file_exist_in_sys
                    fi
            fi

    done

}

if_dir_exist_in_sys (){

    echo -e "\nExample :- \e[1;92m/home/User/Download/]\n"
    while [ 1 ]
        do    
            read -p $'\e[1;93mEnter the path of directory which you want to push : \e[0m' dir_to_copy_path
            if [ "$dir_to_copy_path" == "" ]
                then
                    echo -e "\e[91mPlease enter the path name plz....\n"
                    if_dir_exist_in_sys
                else
                    tmp_chk=$(if [ -d $dir_to_copy_path ]; then echo '0'; else echo '1'; fi)
                    if [ "$tmp_chk" == "0" ]
                        then
                            if_dir_exist_in_dev
                            break
                        else
                            echo -e "\e[91mPlease enter the right path name plz....\n"
                            if_dir_exist_in_sys
                    fi
            fi

    done

}

dev_1_custom_push () {
                
                devvv=$(echo $dev_1)
                echo -e "\e[93m1. \e[92mPush File"
                echo -e "\e[93m2. \e[92mPush Directory"                
                while [ 1 ]
                    do
                         read -p $'\n\e[1;4;91mEnter here\e[0m\e[24;1;97m : ' options
                         case $options in
                         "1") if_file_exist_in_sys; break;;
                         "2") if_dir_exist_in_sys; break;;
                         *) echo -e "\n\e[1;4;91mENTER THE RIGHT OPTION BRO :- (1/2)\n";;
                         esac    
                done

                if [ "$file_to_copy" == "0" ]
                    then
                        echo -e "\e[93m"
                        adb -s $dev_1 push $file_to_copy_path /sdcard/$file_to_copy_path_dev
                    else
                        echo -e "\e[93m"
                        adb -s $dev_1 push $dir_to_copy_path /sdcard/$dir_to_copy_path_dev/
                fi

                echo -e "\n\e[1;92mProcess complete.\n"


}

dev_2_custom_push () {
                
                devvv=$(echo $dev_2)
                echo -e "\e[93m1. \e[92mPush File"
                echo -e "\e[93m2. \e[92mPush Directory"                
                while [ 1 ]
                    do
                         read -p $'\n\e[1;4;91mEnter here\e[0m\e[24;1;97m : ' options
                         case $options in
                         "1") if_file_exist_in_sys; break;;
                         "2") if_dir_exist_in_sys; break;;
                         *) echo -e "\n\e[1;4;91mENTER THE RIGHT OPTION BRO :- (1/2)\n";;
                         esac    
                done

                if [ "$file_to_copy" == "0" ]
                    then
                        echo -e "\e[93m"
                        adb -s $dev_2 push $file_to_copy_path /sdcard/$file_to_copy_path_dev
                    else
                        echo -e "\e[93m"
                        adb -s $dev_2 push $dir_to_copy_path /sdcard/$dir_to_copy_path_dev/

                fi

                echo -e "\n\e[1;92mProcess complete.\n"

}

dev_3_custom_push () {

                devvv=$(echo $dev_3)                
                echo -e "\e[93m1. \e[92mPush File"
                echo -e "\e[93m2. \e[92mPush Directory"                
                while [ 1 ]
                    do
                         read -p $'\n\e[1;4;91mEnter here\e[0m\e[24;1;97m : ' options
                         case $options in
                         "1") if_file_exist_in_sys; break;;
                         "2") if_dir_exist_in_sys; break;;
                         *) echo -e "\n\e[1;4;91mENTER THE RIGHT OPTION BRO :- (1/2)\n";;
                         esac    
                done

                if [ "$file_to_copy" == "0" ]
                    then
                        echo -e "\e[93m"
                        adb -s $dev_3 push $file_to_copy_path /sdcard/$file_to_copy_path_dev
                    else
                        echo -e "\e[93m"
                        adb -s $dev_3 push $dir_to_copy_path /sdcard/$dir_to_copy_path_dev/
                fi
                echo -e "\n\e[1;92mProcess complete.\n"

}

if [ "$total_dev" ==  "0" ]
    then
        echo -e "\e[91;1mNO DEVICE CONNECTED"
    else
        if [ "$total_dev" == "1" ]
            then
                dev_1_custom_push
            else
                if [ "$total_dev" == "2" ]
                    then
                        echo -e "\e[93mSelect the device to push data :- \e[92m\n"
                        echo -e "\e[93m1. \e[92m$dev_1 , \e[93mModel : \e[92m$mod_1"
                        echo -e "\e[93m2. \e[92m$dev_2 , \e[93mModel : \e[92m$mod_2"
                        while [ 1 ]; do
                            read -p $'\n\e[1;4;91mEnter here\e[0m\e[24;1;97m : ' options
                            case $options in
                            "1") dev_1_custom_push; break;;
                            "2") dev_2_custom_push; break;;
                              *) echo -e "\n\e[1;4;91mENTER THE RIGHT OPTION BRO :- (1/2)\n";;
                            esac
                        done
                    else
                        if [ "$total_dev" == "3" ]
                            then
                                echo -e "\e[93mSelect the device to push data:- \e[92m\n"
                                echo -e "\e[93m1. \e[92m$dev_1 , \e[93mModel : \e[92m$mod_1"
                                echo -e "\e[93m1. \e[92m$dev_2 , \e[93mModel : \e[92m$mod_2"
                                echo -e "\e[93m1. \e[92m$dev_3 , \e[93mModel : \e[92m$mod_3"
                        while [ 1 ]; do
                            read -p $'\n\e[1;4;91mEnter here\e[0m\e[24;1;97m : ' options
                            case $options in
                            "1") dev_1_custom_push; break;;
                            "2") dev_2_custom_push; break;;
                            "3") dev_3_custom_push; break;;
                              *) echo -e "\n\e[1;4;91mENTER THE RIGHT OPTION BRO :- (1/2/3/)\n";;
                            esac
                        done
                        fi
                fi  
                        
        fi
fi

read -p $'\n\e[93;1mDo you want to clear the screen \e[1;97m (y/N) \e[93;1m? : \e[1;91m' yn
case $yn in
  [Yy]* ) clear; bash modules/funtion.sh;;
  [Nn]* ) bash modules/funtion.sh;;
  * ) bash modules/funtion.sh;;
esac
