понедельник, 25 июля 2011 г.

SSHLIST - простой аналог SSHMenu со списком Ваших соединений SSH




nano ~/sshlist.py
скопировать и сохранить следующее:
#!/usr/bin/python

# sshlist v0.1
# Instructions

# 1. Copy file sshlist.py (this file) to /usr/local/bin
# 2. Edit file .sshlist in home directory to add ssh host (one per line)
# 3. You can if you wish add additional ssh options. The line is appended to the ssh command
# 4. Launch sshlist.py
# 5. Or better yet, add it to gnome startup programs list so it's run on login.

# v0.1 - Initial push
# v0.11 - Add a little polish.

import gobject
import gtk
import appindicator
import os
import pynotify

ver = "0.11"

def run_program(cmd):
    #returns (output, exit value)
    fd=os.popen(cmd,"r")
    output=fd.read()
    exitvalue=fd.close()
    return (output,exitvalue)

def menuitem_response(w, buf):
    if buf == "_about" :
        md = gtk.MessageDialog(None,0, gtk.MESSAGE_INFO,
             gtk.BUTTONS_OK)
        md.set_markup("sshlist v%s" % ver)
        md.format_secondary_markup("""A simple sshmenu like replacement for appindicator menu.

To add items to menu, simple edit the file .sshlist in your home directory (one host per line). The line is directly appended to the ssh command.

Author: anil.verve@gmail.com
http://www.gulecha.org""")
        md.run()
        md.destroy()
    elif buf == "_refresh":
        newmenu = build_menu()
        ind.set_menu(newmenu)
        pynotify.Notification("sshlist refreshed","Menu list was refreshed from ~/.sshlist").show()
    else:
        print "gnome-terminal -x ssh " + buf
        run_program("gnome-terminal -x ssh " + buf)


def build_menu():
    # create a menu
    menu = gtk.Menu()

    # read in the ssh hosts list from ~/.sshlist
    hosts = open(os.getenv("HOME")+"/.sshlist","r").read()
    hostlist = hosts.split("\n")

    while "" in hostlist:
        hostlist.remove("")

    # create some
    for host in hostlist:
        menu_items = gtk.MenuItem(host)
        menu.append(menu_items)

        # this is where you would connect your menu item up with a function:
        menu_items.connect("activate", menuitem_response, host)
        # show the items
        menu_items.show()

    separator = gtk.SeparatorMenuItem()
    separator.show()
    menu.append(separator)

    menu_items = gtk.MenuItem("Refresh")
    menu.append(menu_items)
    menu_items.connect("activate", menuitem_response, "_refresh")
    menu_items.show()

    menu_items = gtk.MenuItem("About")
    menu.append(menu_items)
    menu_items.connect("activate", menuitem_response, "_about")
    menu_items.show()
    return menu


if __name__ == "__main__":
    ind = appindicator.Indicator ("sshlist",
                                "gnome-netstatus-tx",
                                appindicator.CATEGORY_APPLICATION_STATUS)
    ind.set_label("SSH")
    ind.set_status (appindicator.STATUS_ACTIVE)
    ind.set_attention_icon ("connect_creating")

    # create a menu
    sshmenu = build_menu()
    ind.set_menu(sshmenu)


    gtk.main()

chmod a+rx ~/sshlist.py
# mv sshlist.py /usr/local/bin
nano ~/.sshlist
добавить список ssh хостов — один хост на строчку

проверка:
Alt+F2  sshlist.py

Добавить данный скрипт в автозагрузку.

Источник: www.gulecha.org

Комментариев нет:

Отправить комментарий