13:1
     +\{     +# This file is part of the sos project: https://github.com/sosreport/sos
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# version 2 of the GNU General Public License.
#
# See the LICENSE file in the source distribution for further information.

from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin
import os


class Ata(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
    """ ATA and IDE information
    """

    plugin_name = "ata"
    profiles = ('storage', 'hardware')

    packages = ('hdparm', 'smartmontools')

    def setup(self):
        dev_path = '/dev'
        sys_block = '/sys/block'
        self.add_copy_spec('/proc/ide')
        if os.path.isdir(sys_block):
            for disk in os.listdir(sys_block):
                if disk.startswith("sd") or disk.startswith("hd"):
                    disk_path = os.path.join(dev_path, disk)
                    self.add_cmd_output([
                        "hdparm %s" % disk_path,
                        "smartctl -a %s" % disk_path
                    ])


# vim: set et ts=4 sw=4 :
     -"g 	    -#! /usr/bin/env python

# Simulate "electrons" migrating across the screen.
# An optional bitmap file in can be in the background.
#
# Usage: electrons [n [bitmapfile]]
#
# n is the number of electrons to animate; default is 30.
#
# The bitmap file can be any X11 bitmap file (look in
# /usr/include/X11/bitmaps for samples); it is displayed as the
# background of the animation.  Default is no bitmap.

from Tkinter import *
import random


# The graphical interface
class Electrons:

    # Create our objects
    def __init__(self, n, bitmap = None):
        self.n = n
        self.tk = tk = Tk()
        self.canvas = c = Canvas(tk)
        c.pack()
        width, height = tk.getint(c['width']), tk.getint(c['height'])

        # Add background bitmap
        if bitmap:
            self.bitmap = c.create_bitmap(width/2, height/2,
                                          bitmap=bitmap,
                                          foreground='blue')

        self.pieces = []
        x1, y1, x2, y2 = 10,70,14,74
        for i in range(n):
            p = c.create_oval(x1, y1, x2, y2, fill='red')
            self.pieces.append(p)
            y1, y2 = y1 +2, y2 + 2
        self.tk.update()

    def random_move(self, n):
        c = self.canvas
        for p in self.pieces:
            x = random.choice(range(-2,4))
            y = random.choice(range(-3,4))
            c.move(p, x, y)
        self.tk.update()

    # Run -- allow 500 movemens
    def run(self):
        try:
            for i in range(500):
                self.random_move(self.n)
        except TclError:
            try:
                self.tk.destroy()
            except TclError:
                pass


# Main program
def main():
    import sys, string

    # First argument is number of electrons, default 30
    if sys.argv[1:]:
        n = string.atoi(sys.argv[1])
    else:
        n = 30

    # Second argument is bitmap file, default none
    if sys.argv[2:]:
        bitmap = sys.argv[2]
        # Reverse meaning of leading '@' compared to Tk
        if bitmap[0] == '@': bitmap = bitmap[1:]
        else: bitmap = '@' + bitmap
    else:
        bitmap = None

    # Create the graphical objects...
    h = Electrons(n, bitmap)

    # ...and run!
    h.run()


# Call main when run as script
if __name__ == '__main__':
    main()
     /     /
)rjc           @   sL   d  d l  m  Z  d  d l m Z m Z m Z d e e e f d     YZ d S(   i(   t   glob(   t   Plugint   RedHatPlugint   UbuntuPlugint   Consolec           B   s)   e  Z d  Z d Z d Z d Z d   Z RS(   s%   Console and keyboard information
    t   consolet   systemt   kbdc         C   sH   |  j  d  |  j d  |  j g  t d  D] } d | ^ q-  d  S(   Ns   /proc/consolest	   fgconsoles   /dev/tty[0-8]s   kbdinfo -C %s gkbled(  