From 0f1f702c66a5a020e11a306426fb391c7827d513 Mon Sep 17 00:00:00 2001 From: mudler Date: Wed, 2 Mar 2016 21:19:12 +0100 Subject: [PATCH] add sabayon-tbz2extract and sabayon-xpakextract --- sabayon-tbz2extract | 39 +++++++++++++++++++++++++++++++++++++++ sabayon-xpakextract | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 sabayon-tbz2extract create mode 100644 sabayon-xpakextract diff --git a/sabayon-tbz2extract b/sabayon-tbz2extract new file mode 100644 index 0000000..4d0e4ee --- /dev/null +++ b/sabayon-tbz2extract @@ -0,0 +1,39 @@ +#!/usr/bin/python +# mudler +# Edit: create a truncated tbz2 with just data +import os +import sys +from portage import xpak + +def usage(): + sys.stderr.write("usage: %s \n" % os.path.basename(sys.argv[0])) + +def main(): + if len(sys.argv) != 2: + usage() + return 1 + + input_file = sys.argv[1] + + if not os.path.isfile(input_file): + usage() + return 1 + + output_file = input_file + if output_file.endswith('.tbz2'): + output_file = output_file[:-5] + output_file += '.truncated' + + t = xpak.tbz2(input_file) + t.scan() + f = open(input_file, 'rb') + data = f.read(os.stat(input_file).st_size - t.xpaksize) + f.close() + + f = open(output_file, 'wb') + f.write(data) + f.close() + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/sabayon-xpakextract b/sabayon-xpakextract new file mode 100644 index 0000000..7b307bf --- /dev/null +++ b/sabayon-xpakextract @@ -0,0 +1,39 @@ +#!/usr/bin/python + +import os +import sys +from portage import xpak + +def usage(): + sys.stderr.write("usage: %s \n" % os.path.basename(sys.argv[0])) + +def main(): + if len(sys.argv) != 2: + usage() + return 1 + + input_file = sys.argv[1] + + if not os.path.isfile(input_file): + usage() + return 1 + + output_file = input_file + if output_file.endswith('.tbz2'): + output_file = output_file[:-5] + output_file += '.xpak' + + t = xpak.tbz2(input_file) + t.scan() + f = open(input_file, 'rb') + f.seek(-t.xpaksize, 2) + data = f.read() + f.close() + + f = open(output_file, 'wb') + f.write(data) + f.close() + return 0 + +if __name__ == '__main__': + sys.exit(main())