[prev in list] [next in list] [prev in thread] [next in thread]
List: klik-devel
Subject: [klik-devel] [klikclient commit] r1571 - trunk/ympclient
From: codesite-noreply () google ! com
Date: 2008-05-12 19:05:05
Message-ID: 001636284800bf6c4c044d0d395d () google ! com
[Download RAW message or body]
Author: klik.atekon.de
Date: Mon May 12 12:04:10 2008
New Revision: 1571
Modified:
trunk/ympclient/client
Log:
Streamlined and removed unneccessary object orientation
Modified: trunk/ympclient/client
==============================================================================
--- trunk/ympclient/client (original)
+++ trunk/ympclient/client Mon May 12 12:04:10 2008
@@ -1,103 +1,92 @@
-#!/usr/bin/env python
-
-#
-# (c) 2008 Simon Peter <probono@myrealbox.com>
-# GPL v2
-#
-
-import sys, os, string
-from subprocess import *
-# from xml.etree import ElementTree # cannot handle multiple
namespaces as ymp has
-from xml.dom.minidom import *
-
-try:
- import pygtk
- pygtk.require("2.0")
-except:
- pass
-try:
- import gtk
- import gtk.glade
-except:
- sys.exit(1)
-
-#
-# Define the about dialog
-#
-
-def showAbout(self):
- dlg = gtk.AboutDialog()
- dlg.set_version("0.0.1")
- dlg.set_name("ympclient")
- icon = gtk.gdk.pixbuf_new_from_file("get_pack.png")
- dlg.set_logo(icon)
- dlg.set_authors(["Simon Peter <probono@myrealbox.com>"])
-
- dlg.set_comments('''Cross-distribution ymp client\nfor
the openSUSE 1-Click Install''')
- def close(w, res):
- if res == gtk.RESPONSE_CANCEL:
- w.destroy()
- dlg.connect("response", close)
- dlg.show()
-
-
-#
-# Check if we are root. If we are not, do some magic # fixme
-#
-
-#if os.getuid() != 0:
-# try:
-# xdg_su = "xdg-su" # fixme
-#
-# command = ["sh", xdg_su, "-c"] + [os.path.join(sys.path[0],
sys.argv[0])] + sys.argv[1:]
-# p = Popen(command)
-# p.wait()
-# sys.exit(p.returncode)
-# except:
-# print "Cannot become root. Exiting"
-# exit(1)
-
-#
-# Parse the ymp file
-#
-
-try:
- f = open(sys.argv[1], "r")
- xml = f.read()
- f.close()
- document = parseString(xml)
-except:
- print "Cannot parse ymp file"
- exit()
-
-package = document.getElementsByTagName("software")[0].getElementsByTagName("name")[0].firstChild.nodeValue
-# print package
-
-description = document.getElementsByTagName("software")[0].getElementsByTagName("description")[0].firstChild.nodeValue
-# print description
-
-repo = document.getElementsByTagName("repositories")[0].getElementsByTagName("url")[0].firstChild.nodeValue
-# print repo
-
-#
-# Show the main window
-#
-
-class MainWindow:
- """Display the MainWindow"""
-
- def __init__(self):
-
- # Show the MainWindow from the glade file
- self.gladefile = \
os.path.join(sys.path[0],"ympclient.glade")
- self.wTree = gtk.glade.XML(self.gladefile)
- self.window = self.wTree.get_widget("MainWindow")
- self.window.show()
-
- # Make the X button work
- self.window.connect("destroy", exit)
-
- # Make the other buttons work
+#!/usr/bin/env python
+
+#
+# (c) 2008 Simon Peter <probono@myrealbox.com>
+# GPL v2
+#
+
+import sys, os, string
+from subprocess import *
+from xml.dom.minidom import *
+
+try:
+ import gtk
+ import gtk.glade
+except:
+ sys.exit(1)
+
+#
+# Define the about dialog
+#
+
+def showAbout(self):
+ dlg = gtk.AboutDialog()
+ dlg.set_version("0.0.1")
+ dlg.set_name("ympclient")
+ icon = gtk.gdk.pixbuf_new_from_file("get_pack.png")
+ dlg.set_logo(icon)
+ dlg.set_authors(["Simon Peter <probono@myrealbox.com>"])
+ dlg.set_comments('''Cross-distribution ymp client\nfor the openSUSE
1-Click Install''')
+ def close(w, res):
+ if res == gtk.RESPONSE_CANCEL:
+ w.destroy()
+ dlg.connect("response", close)
+ dlg.show()
+
+#
+# Parse the ymp file
+#
+
+try:
+ f = open(sys.argv[1], "r")
+ xml = f.read()
+ f.close()
+ document = parseString(xml)
+except:
+ print "Cannot parse ymp file"
+ exit()
+
+package = document.getElementsByTagName("software")[0].getElementsByTagName("name")[0].firstChild.nodeValue
+description = document.getElementsByTagName("software")[0].getElementsByTagName("description")[0].firstChild.nodeValue
+repo = document.getElementsByTagName("repositories")[0].getElementsByTagName("url")[0].firstChild.nodeValue
+
+#
+# Show the main dialog
+#
+
+gladefile = os.path.join(sys.path[0],"ympclient.glade")
+wTree = gtk.glade.XML(gladefile)
+window = wTree.get_widget("MainWindow")
+window.show()
+window.connect("destroy", exit)
+dic = { "on_OK_clicked" : gtk.main_quit, # continue with Python script
+ "on_cancel_clicked" : exit, # exit Python script
+ "on_about_clicked" : showAbout, # show about dialog
+ "on_MainWindow_destroy" : gtk.main_quit }
+wTree.signal_autoconnect(dic)
+strippeddescription = replace = string.replace(description, '\n', ' ')
+wTree.get_widget("TopLabel").set_text(package+": "+strippeddescription)
+wTree.get_widget("ExpanderLabel").set_text("Repository to be
added: "+repo+"\n"+"Package to be installed: "+package+"\n")
+gtk.main()
+
+#
+# Write sources.list and call apt-get
+#
+
+sourceline = "deb "+repo+" ./"
+
+# Write the install script
+myfile = file('/tmp/ymp.sh', 'w')
+myfile.write("echo '"+sourceline+"'> \
/etc/apt/sources.list.d/ymp.list"+"\n") +myfile.write("apt-get \
update"+"\n") +myfile.write("apt-get install "+package+"\n")
+myfile.write("rm -rf /etc/apt/sources.list.d/ymp.list"+"\n")
+myfile.write("sleep 5"+"\n")
+myfile.close()
+
+# Make install script executable and run it
+os.system("chmod u+x /tmp/ymp.sh")
+os.system("xterm -e sudo /tmp/ymp.sh")ke the other buttons work
dic = { "on_OK_clicked" : gtk.main_quit, # continue with Python script
"on_cancel_clicked" : exit, # exit Python script
"on_about_clicked" : showAbout, # show about dialog
_______________________________________________
klik-devel mailing list
klik-devel@kde.org
https://mail.kde.org/mailman/listinfo/klik-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic