#!/usr/bin/python
import sys
from optparse import OptionParser

from commander.commands import remote
from commander.hosts import get_systems, list_groups
if __name__ == "__main__":
    parser = OptionParser()

    parser.add_option("-l", "--list",
              action="store_true",
              help="list systems in group")

    parser.add_option("-g", "--list-groups",
              action="store_true",
              help="list systems in group")

    parser.add_option("--list-complete-groups",
              action="store_true",
              help="list systems in group")

    parser.add_option("-c", "--count",
              default=25,
              help="number of systems to run cmd on at once")

    parser.add_option("-i", "--identity",
              help="path to ssh private key")

    parser.disable_interspersed_args()
    (options, args) = parser.parse_args()

    if options.list:
        print "\n".join(get_systems(args[0]))
    elif options.list_complete_groups:
        list_groups(False)
    elif options.list_groups:
        list_groups()
    else:
        hosts = get_systems(args[0])
        if sys.stdin.isatty():
            command = " ".join(args[1:])
        else:
            command = sys.stdin.read().strip()

        remote(hosts, command, remote_limit=int(options.count), ssh_key=options.identity)
