CasperSecurity

Current Path : /usr/share/apport/
Upload File :
Current File : //usr/share/apport/package_hook

#!/usr/bin/python3
#
# Collect information about a package installation/upgrade failure.
#
# Copyright (c) 2007 - 2009 Canonical Ltd.
# Author: Martin Pitt <martin.pitt@ubuntu.com>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.  See http://www.gnu.org/copyleft/gpl.html for
# the full text of the license.

import sys, optparse, os.path, os
import apport, apport.fileutils


def mkattrname(path):
    '''Convert a file path to a problem report attribute name.'''

    name = ''
    for dir in path.split(os.sep):
        if dir:
            name += ''.join([c for c in dir[0].upper() + dir[1:] if c.isalnum()])
    return name


#
# main
#

# parse command line arguments
optparser = optparse.OptionParser('%prog [options]')
optparser.add_option('-p', '--package', help='Specify the package name which failed to upgrade (mandatory)')
optparser.add_option('-l', '--log', action='append', dest='logs',
                     help='Append given log file, or, if it is a directory, all files in it (can be specified multiple times)')

optparser.add_option('-t', '--tags', help='Add the following tags to the bug report (comma separated)')
options = optparser.parse_args()[0]

if not options.package:
    apport.fatal('You need to specify a package name with --package')
    sys.exit(1)

# create report
pr = apport.Report('Package')
pr.add_package(options.package)
pr['SourcePackage'] = apport.packaging.get_source(options.package)
pr['ErrorMessage'] = (sys.stdin, False)

if options.tags:
    tags = options.tags.replace(',', '')
    pr['Tags'] = tags

for line in (options.logs or []):
    if os.path.isfile(line):
        pr[mkattrname(line)] = (line,)
    elif os.path.isdir(line):
        for f in os.listdir(line):
            path = os.path.join(line, f)
            if os.path.isfile(path):
                pr[mkattrname(path)] = (path,)

# write report
try:
    with apport.fileutils.make_report_file(pr) as f:
        pr.write(f)
except (IOError, OSError) as e:
    apport.fatal('Cannot create report: ' + str(e))
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY