!C99Shell v. 1.0 pre-release build #16!

Software: Apache/2.0.54 (Fedora). PHP/5.0.4 

uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 

uid=48(apache) gid=48(apache) groups=48(apache)
context=system_u:system_r:httpd_sys_script_t
 

Safe-mode: OFF (not secure)

/usr/share/system-config-packages/   drwxr-xr-x
Free 3.84 GB of 27.03 GB (14.22%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     InstallProgressDialog.py (7.71 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import gtk
import gtk.glade
import os
import locale
import rpm

from ProgressDialog import ProgressDialog
from config import *
from constants import *
from GroupSet import tenevra
from rhpl.translate import _, N_, textdomain
from size_string import size_string
from SummaryModel import SummaryModel, setup_summary_tree

textdomain(PROGNAME)

MODE_PROGRESS='progress'
MODE_INFO='info'
MODE_INSTALL='install'
MODE_POST_INSTALL='post-install'
MODE_PACKAGE_INSTALL='package-install'

INFO_TEXT="<span  weight=\"bold\" size=\"larger\">" + _("Completed System Preparation") + "</span>\n\n"
INSTALL_TEXT="<span weight=\"bold\" size=\"larger\">" + _("Updating System") + "</span>\n\
\n" + \
_("Installing and removing individual packages.\n")

POST_INSTALL_TEXT="<span weight=\"bold\" size=\"larger\">"+ _("Update Complete") + "</span>\n\
\n" + \
_("The system update was successfully completed.\n")

class CancelInstallation (Exception):
    pass


class InstallProgressDialog (ProgressDialog):
    def __init__ (self, parent=None):
        glade_file = 'InstallProgressDialog.glade'
        if not os.path.isfile(glade_file):
            glade_file = GLADEDIR + glade_file
        xml = gtk.glade.XML (glade_file, domain=PROGNAME)

        self.notebook = xml.get_widget ('label_notebook')
        self.progress_label = xml.get_widget ('progress_label')
        self.summary_label = xml.get_widget ('summary_label')
        self.info_label = xml.get_widget ('info_label')
        self.progressbar = xml.get_widget ('progress_progressbar')
        self.dialog = xml.get_widget ('install_progress_dialog')
        self.continue_button = xml.get_widget ('continue_button')
        self.details_hbox = xml.get_widget ('details_hbox')
        self.cancel_button = xml.get_widget ('cancel_button')
        self.ok_button = xml.get_widget ('ok_button')
        self.details_button = xml.get_widget ('details_button')
        self.details_swindow = xml.get_widget ('details_swindow')
        self.details_tree_view = xml.get_widget ('details_tree_view')
        self.install_progress_progressbar = xml.get_widget ('install_progress_progressbar')
        self.install_progress_label = xml.get_widget ('install_progress_label')
        self.install_info_label = xml.get_widget ('install_info_label')
        self.response_cb_id = 0
        ProgressDialog.__init__ (self, parent)

        # Details tree
        self.details_button.connect ('clicked', self.details_clicked_cb)
        setup_summary_tree (self.details_tree_view)
        self.details_swindow.set_size_request (-1, 300)

        self.dialog.show ()
        self.switch_mode (MODE_PROGRESS)


    def toggle_details_state (self):
        if not self.details_swindow.flags () & gtk.VISIBLE:
            self.details_button.set_label (_("Hide _Details"))
            self.details_swindow.show ()
            self.dialog.set_resizable (True)
        else:
            self.details_button.set_label (_("Show _Details"))
            self.details_swindow.hide ()
            self.dialog.set_resizable (False)


    def details_clicked_cb (self, button):
        self.toggle_details_state ()

    def switch_mode (self, mode):
        if mode == MODE_PROGRESS:
            self.dialog.set_resizable (False)
            def response_cb (dialog, response_id, self):
                if response_id == 0:
                    return
                self.cancel()

            if self.response_cb_id != 0:
                self.dialog.disconnect (self.response_cb_id)
            self.response_cb_id = self.dialog.connect ('response', response_cb, self)

            self.notebook.set_current_page (0)
            self.continue_button.set_sensitive(False)
        elif mode == MODE_INFO:
            if self.response_cb_id != 0:
                self.dialog.disconnect (self.response_cb_id)
                self.response_cb_id = 0
            self.notebook.set_current_page (1)
            self.continue_button.set_sensitive(True)
        elif mode == MODE_INSTALL:
            if self.details_swindow.flags () & gtk.VISIBLE:
                self.toggle_details_state ()
            if self.response_cb_id != 0:
                self.dialog.disconnect (self.response_cb_id)
                self.response_cb_id = 0
            message = "<span weight=\"bold\" size=\"larger\">" + _("Updating system") + "</span>\n\n"
            if self.install_count > 0 and self.uninstall_count > 0:
                message += _("Installing and removing individual packages.\n")
            elif self.install_count > 0:
                message += _("Installing individual packages.\n")
            elif self.uninstall_count > 0:
                message += _("Remove individual packages.\n")

            self.install_progress_label.set_markup (message)
            self.info_label = self.install_info_label
            self.progressbar = self.install_progress_progressbar
            self.clear ()
            self.dialog.set_resizable (False)
            self.continue_button.set_sensitive(False)
            self.notebook.set_current_page (2)
            def response_cb (dialog, response_id, self):
                return True
            self.response_cb_id = self.dialog.connect ('response', response_cb, self)
            self.cancel_button.hide ()
        elif mode == MODE_POST_INSTALL:
            self.notebook.set_current_page (2)
            self.install_progress_label.set_markup (POST_INSTALL_TEXT)
            self.ok_button.show ()
            self.continue_button.hide ()
            self.info_label.set_markup ('<i>Done</i>')
            def response_cb (dialog, response_id, self):
                self.destroy ()
                return True
            self.response_cb_id = self.dialog.connect ('response', response_cb, self)

    def info_from_comps (self, ts, hdrlist):
        self.install_count = 0
        self.uninstall_count = 0
       size_delta = 0
        install_list = []
        remove_list = []
        for te in ts:
            package_name = tenevra(te)
            package = hdrlist[package_name]
            
            if te.Type() == (1 << 0): # TR_ADDED
                self.install_count += 1
                size_delta += package[rpm.RPMTAG_SIZE]
                install_list.append ( (package_name, size_string (package[rpm.RPMTAG_SIZE])))
            elif package.installState == TOREMOVE:
                self.uninstall_count += 1
                size_delta -= package[rpm.RPMTAG_SIZE]
                remove_list.append ( (package_name, size_string (package[rpm.RPMTAG_SIZE])))
        summary_label_text = INFO_TEXT
        if self.install_count > 0:
            summary_label_text += _("%d packages are queued for installation\n") % self.install_count
        if self.uninstall_count > 0:
            summary_label_text += _("%d packages are queued for removal\n") % self.uninstall_count
        if size_delta < 0:
            summary_label_text += _("This will free up %s of diskspace.") % size_string (size_delta * -1)
        else:
            summary_label_text += _("This will take %s of diskspace.") % size_string (size_delta)
        summary_label_text += "\n"
        if len(remove_list) > MAX_PACKAGE_REMOVE_WARN:
            summary_label_text += "\n\n<b>" + _("Warning:") + "</b> "
            summary_label_text += _("An excessive number of packages are queued for removal.  Please check the list below to confirm that all the packages should be removed.")
            if not self.details_swindow.flags () & gtk.VISIBLE:
                self.toggle_details_state ()
        self.summary_label.set_markup (summary_label_text)

        model = SummaryModel ()
        model.set_packages (install_list, remove_list)
        
        self.details_tree_view.set_model (model)

    def continue_install_test (self):
        if self.dialog.run () == 0:
            return True
        self.destroy ()
        return False

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0064 ]--