#!/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()