summaryrefslogtreecommitdiffstats
path: root/src/retrace/worker.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/retrace/worker.py')
-rwxr-xr-xsrc/retrace/worker.py45
1 files changed, 30 insertions, 15 deletions
diff --git a/src/retrace/worker.py b/src/retrace/worker.py
index 2bb33237..f7381c72 100755
--- a/src/retrace/worker.py
+++ b/src/retrace/worker.py
@@ -68,6 +68,16 @@ if __name__ == "__main__":
LOG.close()
sys.exit(16)
+ # read package file
+ try:
+ package_file = open("%s/crash/package" % savedir, "r")
+ crash_package = package_file.read()
+ package_file.close()
+ except Exception as ex:
+ LOG.write("Unable to read crash package from 'package' file: %s.\n" % ex)
+ LOG.close()
+ sys.exit(17)
+
# read release, distribution and version from release file
release_path = "%s/crash/os_release" % savedir
if not os.path.isfile(release_path):
@@ -77,23 +87,28 @@ if __name__ == "__main__":
release_file = open(release_path, "r")
release = release_file.read()
release_file.close()
- except Exception as ex:
- LOG.write("Unable to read distribution and version from 'release' file: %s.\n" % ex)
- LOG.close()
- sys.exit(17)
- version = distribution = None
- for distro in RELEASE_PARSERS.keys():
- match = RELEASE_PARSERS[distro].match(release)
- if match:
- version = match.group(1)
- distribution = distro
- break
+ version = distribution = None
+ for distro in RELEASE_PARSERS.keys():
+ match = RELEASE_PARSERS[distro].match(release)
+ if match:
+ version = match.group(1)
+ distribution = distro
+ break
- if not version or not distribution:
- LOG.write("Release '%s' is not supported.\n" % release)
- LOG.close()
- sys.exit(18)
+ if not version or not distribution:
+ raise Exception, "Release '%s' is not supported.\n"
+
+ except Exception as ex:
+ LOG.write("Unable to read distribution and version from 'release' file: %s.\n" % ex)
+ LOG.write("Trying to guess distribution and version... ")
+ distribution, version = guess_release(crash_package)
+ if distribution and version:
+ LOG.write("%s-%s\n" % (distribution, version))
+ else:
+ LOG.write("Failure\n")
+ LOG.close()
+ sys.exit(18)
# read package file
try: