From: Martin Jansa Date: Thu, 29 Mar 2012 16:40:49 +0200 Subject: [PATCH] opkg-make-index: don't use stdout for Packages output and use __str__ instead of __repr__ Signed-off-by: Martin Jansa --- opkg-make-index | 17 +++++++++-------- opkg.py | 4 ++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/opkg-make-index b/opkg-make-index index 898a2f6..02c425f 100755 --- a/opkg-make-index +++ b/opkg-make-index @@ -148,9 +148,8 @@ if opt_s: if verbose: sys.stderr.write("Generating Packages file\n") if packages_filename: - old_stdout = sys.stdout tmp_packages_filename = ("%s.%d" % (packages_filename, os.getpid())) - sys.stdout = open(tmp_packages_filename, "w") + pkgsFile = open(tmp_packages_filename, "w") names = list(packages.packages.keys()) names.sort() for name in names: @@ -171,7 +170,10 @@ for name in names: continue if (verbose): sys.stderr.write("Writing info for package %s\n" % (pkg.package,)) - print(pkg) + if packages_filename: + pkgsFile.write(str(pkg)) + else: + print(pkg) except OSError as e: sys.stderr.write("Package %s disappeared on us!\n(%s)\n" % (name, e)) continue @@ -180,8 +182,7 @@ for name in names: continue if packages_filename: - sys.stdout.close() - sys.stdout = old_stdout + pkgsFile.close() gzip_filename = ("%s.gz" % packages_filename) tmp_gzip_filename = ("%s.%d" % (gzip_filename, os.getpid())) gzip_cmd = "gzip -9c < %s > %s" % (tmp_packages_filename, tmp_gzip_filename) @@ -211,12 +212,12 @@ for name in names: if filelist_filename: tmp_filelist_filename = ("%s.%d" % (filelist_filename, os.getpid())) - sys.stdout = open(tmp_filelist_filename, "w") + f = open(tmp_filelist_filename, "w") names = list(files.keys()) names.sort() for name in names: - print((name,files[name])) - sys.stdout.close() + f.write("%s %s\n" % (name, files[name])) + f.close() if posixpath.exists(filelist_filename): os.unlink(filelist_filename) os.rename(tmp_filelist_filename, filelist_filename) diff --git a/opkg.py b/opkg.py index 299e84e..84583be 100644 --- a/opkg.py +++ b/opkg.py @@ -402,7 +402,7 @@ class Package: ref.parsed_version = parse_version(ref.version) return self.parsed_version.compare(ref.parsed_version) - def __repr__(self): + def __str__(self): out = "" # XXX - Some checks need to be made, and some exceptions @@ -506,7 +506,7 @@ if __name__ == "__main__": package.set_description("A test of the APIs.") print("<") - sys.stdout.write(package) + sys.stdout.write(str(package)) print(">") package.write_package("/tmp")