All pastes #79644 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-07-05 16:24 UTC
rendered paste body
#!/usr/bin/python -tt

import pygtk
pygtk.require('2.0')
import gtk
import os
import subprocess

arg = ["kadischi"]

class Kadischi(gtk.Window):
    def __init__(self):
        gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
        self.set_size_request(300, 200)
        self.set_title("Kadischi: Fedora LiveCD Creator Tool")
        self.connect("delete_event", lambda w,e: gtk.main_quit())

        vbox = gtk.VBox(False, 0)
        vbox.show()
        self.add(vbox)

        label = gtk.Label("Enter a Repository")
        label.show()
        vbox.pack_start(label, True, True, 0)

        self.repo = gtk.Entry()
        self.repo.set_max_length(50)
        self.repo.insert_text("/bordeaux", len(self.repo.get_text()))
        self.repo.select_region(0, len(self.repo.get_text()))
        vbox.pack_start(self.repo, True, True, 0)
        self.repo.show()
        
        label = gtk.Label("Enter a filename and its location")
        label.show()
        vbox.pack_start(label, True, True, 0)

        self.image = gtk.Entry()
        self.image.set_max_length(50)
        self.image.insert_text("/tmp/mylive.iso", len(self.image.get_text()))
        self.image.select_region(0, len(self.image.get_text()))
        vbox.pack_start(self.image, True, True, 0)
        self.image.show()

        hbox = gtk.HBox(False, 0)
        vbox.add(hbox)
        hbox.show()

        check = gtk.CheckButton("Force")
        hbox.pack_start(check, True, True, 0)
        #check.connect("toggled", self.set_arg, repo)
        check.set_active(True)
        check.show()

        check = gtk.CheckButton("Text mode ")
        hbox.pack_start(check, True, True, 0)
        #check.connect("toggled", self.set_arg, entry)
        check.set_active(True)
        check.show()

        button = gtk.Button(stock=gtk.STOCK_OK)
        button.connect("clicked", self.exec_kadischi)
        vbox.pack_start(button, True, True, 0)
        button.set_flags(gtk.CAN_DEFAULT)
        button.grab_default()
        button.show()

        self.show()

    def exec_kadischi(self, image_text):
        arg = []
        arg.append(self.repo.get_text())
        arg.append(self.image.get_text())
        print "Entry contents: %s\n" % arg
        execute(arg)
        gtk.main_quit()
        
    def main(self):
        gtk.main()

def execute (args):
    print args
    if not os.access(args[0], os.X_OK):
        print "[kadischi]: unable to access", args[0]
    rc = subprocess.call(args)
    if rc:
        gtk.main_quit()
        raise RuntimeError, "Failed to execute", args[0]


if __name__ == "__main__":
    program = Kadischi()
    program.main()