1*cdf0e10cSrcweir#! /usr/bin/env python 2*cdf0e10cSrcweir#************************************************************************* 3*cdf0e10cSrcweir# 4*cdf0e10cSrcweir# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5*cdf0e10cSrcweir# 6*cdf0e10cSrcweir# Copyright 2000, 2010 Oracle and/or its affiliates. 7*cdf0e10cSrcweir# 8*cdf0e10cSrcweir# OpenOffice.org - a multi-platform office productivity suite 9*cdf0e10cSrcweir# 10*cdf0e10cSrcweir# This file is part of OpenOffice.org. 11*cdf0e10cSrcweir# 12*cdf0e10cSrcweir# OpenOffice.org is free software: you can redistribute it and/or modify 13*cdf0e10cSrcweir# it under the terms of the GNU Lesser General Public License version 3 14*cdf0e10cSrcweir# only, as published by the Free Software Foundation. 15*cdf0e10cSrcweir# 16*cdf0e10cSrcweir# OpenOffice.org is distributed in the hope that it will be useful, 17*cdf0e10cSrcweir# but WITHOUT ANY WARRANTY; without even the implied warranty of 18*cdf0e10cSrcweir# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*cdf0e10cSrcweir# GNU Lesser General Public License version 3 for more details 20*cdf0e10cSrcweir# (a copy is included in the LICENSE file that accompanied this code). 21*cdf0e10cSrcweir# 22*cdf0e10cSrcweir# You should have received a copy of the GNU Lesser General Public License 23*cdf0e10cSrcweir# version 3 along with OpenOffice.org. If not, see 24*cdf0e10cSrcweir# <http://www.openoffice.org/license.html> 25*cdf0e10cSrcweir# for a copy of the LGPLv3 License. 26*cdf0e10cSrcweir# 27*cdf0e10cSrcweir#************************************************************************* 28*cdf0e10cSrcweirimport os, os.path, sys, zipfile 29*cdf0e10cSrcweir 30*cdf0e10cSrcweirdef paths_to_pack(loglines): 31*cdf0e10cSrcweir """Returns a generator iterating the outdir fields (with platform) of gb_deliver.log lines.""" 32*cdf0e10cSrcweir lines=[] 33*cdf0e10cSrcweir for line in loglines: 34*cdf0e10cSrcweir fields = line.split() 35*cdf0e10cSrcweir if len(fields) >= 3: 36*cdf0e10cSrcweir lines.append(fields[2]) 37*cdf0e10cSrcweir return lines 38*cdf0e10cSrcweir 39*cdf0e10cSrcweirdef stripped_paths_to_pack(loglines): 40*cdf0e10cSrcweir """returns a generator iterating the outdir fields (stripped of the platform) of gb_deliver.log lines.""" 41*cdf0e10cSrcweir return (path.partition('/')[2] for path in paths_to_pack(loglines)) 42*cdf0e10cSrcweir 43*cdf0e10cSrcweirdef main(args): 44*cdf0e10cSrcweir """creates/overwrites a file at OUTDIR/zip/MODULE.zip containing the contents of the gb_deliver.log.""" 45*cdf0e10cSrcweir if len(args) != 3: 46*cdf0e10cSrcweir print('usage: packmodule OUTDIR MODULE') 47*cdf0e10cSrcweir sys.exit(2) 48*cdf0e10cSrcweir (executable, outdir, module) = args 49*cdf0e10cSrcweir os.chdir(outdir) 50*cdf0e10cSrcweir zipdir = 'zip' 51*cdf0e10cSrcweir try: 52*cdf0e10cSrcweir os.makedirs(zipdir) 53*cdf0e10cSrcweir except OSError: 54*cdf0e10cSrcweir pass 55*cdf0e10cSrcweir deliverlog = open(os.path.join('inc', module, 'gb_deliver.log')) 56*cdf0e10cSrcweir packedmodule = zipfile.ZipFile(os.path.join(zipdir,module+'.zip'), 'w') 57*cdf0e10cSrcweir [packedmodule.write(path) for path in stripped_paths_to_pack(deliverlog)] 58*cdf0e10cSrcweir packedmodule.write(os.path.join('inc', module, 'gb_deliver.log')) 59*cdf0e10cSrcweir packedmodule.close() 60*cdf0e10cSrcweir 61*cdf0e10cSrcweirif __name__ == "__main__": 62*cdf0e10cSrcweir main(sys.argv) 63*cdf0e10cSrcweir 64*cdf0e10cSrcweir# vim:set et sw=4 ts=4 filetype=python: 65