#!/usr/bin/python

from storm_indicator.storm_ind import StormIndicator

indicator = StormIndicator()
indicator.add_menu_item('SSH Connections', sensitive=False)
indicator.add_seperator()

import getpass

try:
    from storm import ssh_config
except ImportError:
    raise ImportError("stormssh is not installed. you need to install it in order to use storm-indicator."
                      " try 'sudo pip install stormssh'.")

ssh_config = ssh_config.ConfigParser()

for host_entry in ssh_config.load():

    if not host_entry.get("type") == 'entry' or host_entry.get("host") == '*':
        continue

    identifier = " {host} \n    {user}@{hostname}".format(
        user=host_entry.get("options", {}).get("user", getpass.getuser()),
        hostname=host_entry.get("options", {}).get("hostname"),
        host=host_entry.get("host"),
    )

    indicator.add_seperator()

    indicator.add_menu_item(
        identifier,
        host_entry.get("host"),
        sensitive=True
    )

indicator.add_seperator()
indicator.add_menu_item(
    'About',
    value='about',
    sensitive=True
)

indicator.add_seperator()
indicator.add_menu_item(
    'Quit',
    value='quit',
    sensitive=True
)

indicator.run()