Server IP : 195.201.23.43 / Your IP : 13.59.210.36 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/update-notifier/ |
Upload File : |
#!/usr/bin/python3 import argparse import logging import os import subprocess import sys HAVE_APTDAEMON = False try: import aptdaemon.gtk3widgets assert aptdaemon.gtk3widgets HAVE_APTDAEMON = True except ImportError: pass # show updates def show_updates(): """ show updates using update-manager """ cmd = ["update-manager", "--no-update"] res = subprocess.call(cmd) return (res == 0) # install all updates def _install_all_updates_aptdaemon(): from gi.repository import Gtk from aptdaemon import client, enums from aptdaemon.gtk3widgets import AptProgressDialog client = client.AptClient() trans = client.upgrade_system(safe_mode=True) dia = AptProgressDialog(trans) dia.connect("finished", Gtk.main_quit) dia.run() Gtk.main() return trans.exit == enums.EXIT_SUCCESS def _install_all_updates_synaptic(): cmd = ["/usr/bin/synaptic-pkexec", "--dist-upgrade-mode", "--non-interactive", "--hide-main-window", "-o", "Synaptic::AskRelated=true", ] return subprocess.call(cmd) def install_all_updates(): """ install all updates either with synaptic or aptdaemon """ if HAVE_APTDAEMON: return _install_all_updates_aptdaemon() else: return _install_all_updates_synaptic() # check updates def _check_updates_aptdaemon(): from gi.repository import Gtk from aptdaemon import client, enums from aptdaemon.gtk3widgets import AptProgressDialog client = client.AptClient() trans = client.update_cache() dia = AptProgressDialog(trans) dia.connect("finished", Gtk.main_quit) dia.run() Gtk.main() return trans.exit == enums.EXIT_SUCCESS def _check_updates_gtk(): cmd = ["/usr/bin/synaptic-pkexec", "--update-at-startup", "--non-interactive", "--hide-main-window", ] subprocess.call(cmd) def check_updates(): """ check for updates either with aptdaemon or synaptic """ if HAVE_APTDAEMON: return _check_updates_aptdaemon() else: return _check_updates_gtk() # start packagemanager def start_packagemanager(): if os.path.exists("/usr/bin/synaptic-pkexec"): cmd = ["/usr/bin/synaptic-pkexec"] return subprocess.call(cmd) elif os.path.exists("/usr/bin/software-center"): return subprocess.call(["/usr/bin/software-center"]) else: logging.error("neither synaptic nor software-center installed") # add cdrom def _add_cdrom_sp(mount_path): from gi.repository import Gtk import dbus import dbus.mainloop.glib bus = dbus.SystemBus(mainloop=dbus.mainloop.glib.DBusGMainLoop()) proxy = bus.get_object("com.ubuntu.SoftwareProperties", "/") backend = dbus.Interface(proxy, "com.ubuntu.SoftwareProperties") backend.AddCdromSource() backend.connect_to_signal( "SourcesListModified", Gtk.main_quit) backend.connect_to_signal( "CdromScanFailed", Gtk.main_quit) Gtk.main() if os.path.exists("/usr/bin/software-center"): subprocess.call(["/usr/bin/software-center"]) def _add_cdrom_synaptic(mount_path): cmd = ["/usr/bin/synaptic-pkexec", "--add-cdrom", mount_path] return subprocess.call(cmd) def add_cdrom(mount_path): if os.path.exists("/usr/bin/synaptic-pkexec"): _add_cdrom_synaptic(mount_path) else: _add_cdrom_sp(mount_path) if __name__ == "__main__": parser = argparse.ArgumentParser( description='backend helper for update-notifier') parser.add_argument( '--debug', default=False, action="store_true", help='extra debug output') subparser = parser.add_subparsers(title="Commands") # show_update - update-manager command = subparser.add_parser("show_updates") command.set_defaults(command="show_updates") # install_all - synaptic/aptdaemon install noninteractivly command = subparser.add_parser("install_all_updates") command.set_defaults(command="install_all_updates") # check_updates - synaptic --reload/aptdaemon reload command = subparser.add_parser("check_updates") command.set_defaults(command="check_updates") # start_pkgmanager command = subparser.add_parser("start_packagemanager") command.set_defaults(command="start_packagemanager") # add_cdrom command = subparser.add_parser("add_cdrom") command.add_argument("mount_path") command.set_defaults(command="add_cdrom") args = parser.parse_args() if args.debug: logging.basicConfig(level=logging.DEBUG) else: logging.basicConfig(level=logging.INFO) func_name = args.command f_kwargs = {} f = globals()[func_name] if args.command == "add_cdrom": f_kwargs["mount_path"] = args.mount_path res = f(**f_kwargs) if not res: sys.exit(1)Private