All pastes #1190764 Raw Edit

Stuff

public text v1 · immutable
#1190764 ·published 2008-09-01 19:03 UTC
rendered paste body
#!/usr/bin/env python
# ipc_test.py

from Tkinter import Tk
from libtovid.appdialogs import ConfirmDialog
import os, select

# Simple script to test bash > python ipc.
#    From bash:  mkfifo fifo
#    echo "dialog|Preview OK ?|ok, cancel| /home/robert/preview.gif"  > fifo
#    Then run python ipc_test.py

def format_input(string):
    stringlist = []
    string = string.split('|')
    for index, arg in enumerate(string):
        stringlist.append(arg.strip())
    stringlist[2] = stringlist[2].split(',')
    return stringlist

def run_dialog(args):
    print 'running dialog'
    btns='OK'
    root = Tk()
    title, text, buttons, image = args
    a = ConfirmDialog(root, title, text, buttons, image)
    a.run()

def get_data(fifo):
    while True:
        select.select([fifo],[],[])
        string = os.read(fifo, 1024)
        if len(string):
            listing = format_input(string)
            print listing
            run_dialog(listing)
        else:
            nf = os.open("fifo", os.O_NONBLOCK | os.O_RDONLY)
            os.close(fifo)
            fifo = nf


try:
    fifo = os.open("fifo", os.O_NONBLOCK | os.O_RDONLY)
    data = get_data(fifo)
except KeyboardInterrupt:
    os.sys.exit(1)