]> code.ossystems Code Review - openembedded-core.git/commitdiff
oe-pkgdata-util: add unescape option to read-value
authorRoss Burton <ross.burton@intel.com>
Wed, 4 Oct 2017 13:12:41 +0000 (14:12 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 6 Oct 2017 11:22:44 +0000 (12:22 +0100)
Some fields are multiline values which have been escaped, so add an option to
unescape the \n and \t.

Signed-off-by: Ross Burton <ross.burton@intel.com>
scripts/oe-pkgdata-util

index a690870b1c59ad02df79fb0bbd1a43f3ad28d1de..c6fba56c89b7f22211e00fac11b4e45d322c62c7 100755 (executable)
@@ -197,6 +197,10 @@ def read_value(args):
                 # PKGSIZE is now in bytes, but we we want it in KB
                 pkgsize = (int(value) + 1024 // 2) // 1024
                 value = "%d" % pkgsize
+            if args.unescape:
+                import codecs
+                # escape_decode() unescapes backslash encodings in byte streams
+                value = codecs.escape_decode(bytes(value, "utf-8"))[0].decode("utf-8")
             if args.prefix_name:
                 print('%s %s' % (pkg_name, value))
             else:
@@ -552,6 +556,7 @@ def main():
     parser_read_value.add_argument('pkg', nargs='*', help='Runtime package name to look up')
     parser_read_value.add_argument('-f', '--file', help='Read package names from the specified file (one per line, first field only)')
     parser_read_value.add_argument('-n', '--prefix-name', help='Prefix output with package name', action='store_true')
+    parser_read_value.add_argument('-u', '--unescape', help='Expand escapes such as \\n', action='store_true')
     parser_read_value.set_defaults(func=read_value)
 
     parser_glob = subparsers.add_parser('glob',