#!/bin/python

import os
import sys
import subprocess

ssh_config = os.path.expanduser('~') + "/.ssh/config"

with open(ssh_config) as file:
    file_content = list(file)

#ping -c 1 -w 1

if sys.argv[1] != None:
    ssh_host = sys.argv[1]
    command = f"infocmp | ssh {ssh_host} 'tic -x /dev/stdin'"
    return_value = subprocess.call(command, shell=True, stdout=open(os.devnull, "w"), stderr=subprocess.STDOUT)
    if return_value == 1:
        print(f"Could not send terminfo to {ssh_host}")

else:
    for l in file_content:
        if "host " in l:
            l_index = file_content.index(l)
            index = l_index + 1
            host_ip = file_content[index].split()[1]

            return_value = subprocess.call(["ping", "-c1", "-w1", host_ip], stdout=open(os.devnull, "w"), stderr=subprocess.STDOUT)

            if return_value == 0:
                ssh_host = l.split()[1]

                print(f"Host {ssh_host} ({host_ip}) is up. Sending terminfo..")

                command = f"infocmp | ssh {ssh_host} 'tic -x /dev/stdin'"

                return_value = subprocess.call(command, shell=True, stdout=open(os.devnull, "w"), stderr=subprocess.STDOUT)

                if return_value == 1:
                    print(f"Could not send terminfo to {ssh_host}")
