| #! /usr/bin/env python |
| #************************************************************** |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| #************************************************************** |
| import os, os.path, sys, zipfile |
| |
| def paths_to_pack(loglines): |
| """Returns a generator iterating the outdir fields (with platform) of gb_deliver.log lines.""" |
| lines=[] |
| for line in loglines: |
| fields = line.split() |
| if len(fields) >= 3: |
| lines.append(fields[2]) |
| return lines |
| |
| def stripped_paths_to_pack(loglines): |
| """returns a generator iterating the outdir fields (stripped of the platform) of gb_deliver.log lines.""" |
| return (path.partition('/')[2] for path in paths_to_pack(loglines)) |
| |
| def main(args): |
| """creates/overwrites a file at OUTDIR/zip/MODULE.zip containing the contents of the gb_deliver.log.""" |
| if len(args) != 3: |
| print('usage: packmodule OUTDIR MODULE') |
| sys.exit(2) |
| (executable, outdir, module) = args |
| os.chdir(outdir) |
| zipdir = 'zip' |
| try: |
| os.makedirs(zipdir) |
| except OSError: |
| pass |
| deliverlog = open(os.path.join('inc', module, 'gb_deliver.log')) |
| packedmodule = zipfile.ZipFile(os.path.join(zipdir,module+'.zip'), 'w') |
| [packedmodule.write(path) for path in stripped_paths_to_pack(deliverlog)] |
| packedmodule.write(os.path.join('inc', module, 'gb_deliver.log')) |
| packedmodule.close() |
| |
| if __name__ == "__main__": |
| main(sys.argv) |
| |
| # vim:set et sw=4 ts=4 filetype=python: |