def check_pkg(upload, upload_copy, session): missing = [] changes = os.path.join(upload_copy.directory, upload.changes.changesname) suite_name = upload.target_suite.suite_name handler = PolicyQueueUploadHandler(upload, session) missing = [(m['type'], m["package"]) for m in handler.missing_overrides(hints=missing)] less_cmd = ("less", "-r", "-") less_process = subprocess.Popen(less_cmd, bufsize=0, stdin=subprocess.PIPE) try: less_fd = less_process.stdin less_fd.write( six.ensure_binary( dak.examine_package.display_changes(suite_name, changes))) source = upload.source if source is not None: source_file = os.path.join( upload_copy.directory, os.path.basename(source.poolfile.filename)) less_fd.write( six.ensure_binary( dak.examine_package.check_dsc(suite_name, source_file))) for binary in upload.binaries: binary_file = os.path.join( upload_copy.directory, os.path.basename(binary.poolfile.filename)) examined = dak.examine_package.check_deb(suite_name, binary_file) # We always need to call check_deb to display package relations for every binary, # but we print its output only if new overrides are being added. if ("deb", binary.package) in missing: less_fd.write(six.ensure_binary(examined)) less_fd.write( six.ensure_binary(dak.examine_package.output_package_relations())) less_process.stdin.close() except IOError as e: if e.errno == errno.EPIPE: utils.warn("[examine_package] Caught EPIPE; skipping.") else: raise except KeyboardInterrupt: utils.warn("[examine_package] Caught C-c; skipping.") finally: less_process.communicate()
def check_pkg (upload, upload_copy, session): missing = [] save_stdout = sys.stdout changes = os.path.join(upload_copy.directory, upload.changes.changesname) suite_name = upload.target_suite.suite_name handler = PolicyQueueUploadHandler(upload, session) missing = [(m['type'], m["package"]) for m in handler.missing_overrides(hints=missing)] less_cmd = ("less", "-R", "-") less_process = daklib.daksubprocess.Popen(less_cmd, bufsize=0, stdin=subprocess.PIPE) try: sys.stdout = less_process.stdin print examine_package.display_changes(suite_name, changes) source = upload.source if source is not None: source_file = os.path.join(upload_copy.directory, os.path.basename(source.poolfile.filename)) print examine_package.check_dsc(suite_name, source_file) for binary in upload.binaries: binary_file = os.path.join(upload_copy.directory, os.path.basename(binary.poolfile.filename)) examined = examine_package.check_deb(suite_name, binary_file) # We always need to call check_deb to display package relations for every binary, # but we print its output only if new overrides are being added. if ("deb", binary.package) in missing: print examined print examine_package.output_package_relations() less_process.stdin.close() except IOError as e: if e.errno == errno.EPIPE: utils.warn("[examine_package] Caught EPIPE; skipping.") else: raise except KeyboardInterrupt: utils.warn("[examine_package] Caught C-c; skipping.") finally: less_process.wait() sys.stdout = save_stdout