From 5d7ba722ce879cca9feb425a4f61dd11b898c531 Mon Sep 17 00:00:00 2001 From: regeciovad Date: Aug 22 2014 14:12:46 +0000 Subject: Adding Install button --- diff --git a/README.md b/README.md index a00e5e5..283a476 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,11 @@ fedora-gooey-karma provides similar functionality to the fedora-easy-karma via G python-pyside python-keyring koji + wget To install these dependencies, use this command: - yum install python-fedora fedora-cert yum yum-utils bodhi-client python-pyside python-keyring koji + yum install python-fedora fedora-cert yum yum-utils bodhi-client python-pyside python-keyring koji wget ## Installation and usage diff --git a/src/browser.py b/src/browser.py index 5406468..6a798bd 100644 --- a/src/browser.py +++ b/src/browser.py @@ -21,6 +21,10 @@ # Author: Branislav Blaskovic import webbrowser +import rpm +import os + + class WebBrowser: @@ -64,6 +68,20 @@ class WebBrowser: url = self.__KOJI_PACKAGES_URL + "%s/%s/%s/src/%s.src.rpm" % (name, version, release, update['itemlist_name']) # Maybe it would be nice to show Save dialog and save directly to hdd webbrowser.open_new_tab(url) + + + # Install rpm packages, inspirated by Fedora Draft Documentation + def install_source_rpm(self): + update = self.main.get_bodhi_update() + if not update: + return + name = update['parsed_nvr']['name'] + version = update['parsed_nvr']['version'] + release = update['parsed_nvr']['release'] + url = self.__KOJI_PACKAGES_URL + "%s/%s/%s/i686/%s.i686.rpm" % (name, version, release, update['itemlist_name']) + full_name = "%s.i686.rpm" % (update['itemlist_name']) + os.system('mkdir fgktmp; cd fgktmp; wget %s; sudo rpm -Uhv --root /fgktmp %s' % (url, full_name)) + def show_testcase_in_browser(self): testcase_name = self.main.ui.treeWidget_test_cases.currentItem().text(0).replace(' ', '_') diff --git a/src/fedora-gooey-karma b/src/fedora-gooey-karma index cead213..78541ab 100755 --- a/src/fedora-gooey-karma +++ b/src/fedora-gooey-karma @@ -126,6 +126,7 @@ class MainWindow(QtGui.QMainWindow): ## Package settings self.ui.pkg_settings_open_bodhi_update.clicked.connect(self.webbrowser.show_bodhi_update_in_browser, QtCore.Qt.QueuedConnection) self.ui.pkg_settings_download_source_rpm.clicked.connect(self.webbrowser.download_source_rpm, QtCore.Qt.QueuedConnection) + self.ui.pkg_settings_install_source_rpm.clicked.connect(self. __install_pkg_worker, QtCore.Qt.QueuedConnection) self.ui.settings_pkg_cat_normal.toggled.connect(self.__set_pkg_category, QtCore.Qt.QueuedConnection) self.ui.settings_pkg_cat_favorite.toggled.connect(self.__set_pkg_category, QtCore.Qt.QueuedConnection) self.ui.settings_pkg_cat_ignored.toggled.connect(self.__set_pkg_category, QtCore.Qt.QueuedConnection) @@ -323,6 +324,10 @@ class MainWindow(QtGui.QMainWindow): self.ui.releaseComboBox.addItem(release) + def __install_pkg_worker(self): + self.webbrowser.install_source_rpm() + + def __start_pkg_worker(self): # Get release and put it to queue # Package worker will get info about it diff --git a/src/mainwindow_gui.py b/src/mainwindow_gui.py index 341ab3f..49d1120 100644 --- a/src/mainwindow_gui.py +++ b/src/mainwindow_gui.py @@ -322,23 +322,27 @@ class Ui_MainWindow(object): self.formLayout.setObjectName("formLayout") self.label_7 = QtGui.QLabel(self.tabPkg_settings) self.label_7.setObjectName("label_7") - self.formLayout.setWidget(5, QtGui.QFormLayout.LabelRole, self.label_7) + self.formLayout.setWidget(6, QtGui.QFormLayout.LabelRole, self.label_7) self.settings_pkg_cat_normal = QtGui.QRadioButton(self.tabPkg_settings) self.settings_pkg_cat_normal.setChecked(True) self.settings_pkg_cat_normal.setObjectName("settings_pkg_cat_normal") - self.formLayout.setWidget(5, QtGui.QFormLayout.FieldRole, self.settings_pkg_cat_normal) + self.formLayout.setWidget(6, QtGui.QFormLayout.FieldRole, self.settings_pkg_cat_normal) self.settings_pkg_cat_favorite = QtGui.QRadioButton(self.tabPkg_settings) self.settings_pkg_cat_favorite.setObjectName("settings_pkg_cat_favorite") - self.formLayout.setWidget(6, QtGui.QFormLayout.FieldRole, self.settings_pkg_cat_favorite) + self.formLayout.setWidget(7, QtGui.QFormLayout.FieldRole, self.settings_pkg_cat_favorite) self.settings_pkg_cat_ignored = QtGui.QRadioButton(self.tabPkg_settings) self.settings_pkg_cat_ignored.setObjectName("settings_pkg_cat_ignored") - self.formLayout.setWidget(7, QtGui.QFormLayout.FieldRole, self.settings_pkg_cat_ignored) + self.formLayout.setWidget(8, QtGui.QFormLayout.FieldRole, self.settings_pkg_cat_ignored) self.pkg_settings_open_bodhi_update = QtGui.QPushButton(self.tabPkg_settings) self.pkg_settings_open_bodhi_update.setObjectName("pkg_settings_open_bodhi_update") self.formLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.pkg_settings_open_bodhi_update) self.pkg_settings_download_source_rpm = QtGui.QPushButton(self.tabPkg_settings) self.pkg_settings_download_source_rpm.setObjectName("pkg_settings_download_source_rpm") self.formLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.pkg_settings_download_source_rpm) + + self.pkg_settings_install_source_rpm = QtGui.QPushButton(self.tabPkg_settings) + self.pkg_settings_install_source_rpm.setObjectName("pkg_settings_install_source_rpm") + self.formLayout.setWidget(5, QtGui.QFormLayout.FieldRole, self.pkg_settings_install_source_rpm) self.label_8 = QtGui.QLabel(self.tabPkg_settings) self.label_8.setObjectName("label_8") self.formLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.label_8) @@ -465,6 +469,7 @@ class Ui_MainWindow(object): self.settings_pkg_cat_ignored.setText(QtGui.QApplication.translate("MainWindow", "Ignore this package", None, QtGui.QApplication.UnicodeUTF8)) self.pkg_settings_open_bodhi_update.setText(QtGui.QApplication.translate("MainWindow", "Open bodhi update in web browser", None, QtGui.QApplication.UnicodeUTF8)) self.pkg_settings_download_source_rpm.setText(QtGui.QApplication.translate("MainWindow", "Download source RPM", None, QtGui.QApplication.UnicodeUTF8)) + self.pkg_settings_install_source_rpm.setText(QtGui.QApplication.translate("MainWindow", "Install", None, QtGui.QApplication.UnicodeUTF8)) self.label_8.setText(QtGui.QApplication.translate("MainWindow", "Tools", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget_side.setTabText(self.tabWidget_side.indexOf(self.tabPkg_settings), QtGui.QApplication.translate("MainWindow", "Settings", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.TabInfo), QtGui.QApplication.translate("MainWindow", "Package info", None, QtGui.QApplication.UnicodeUTF8))