# Copyright 2015 MongoDB Inc. # # Licensed 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 SCons import gzip import shutil def GZipAction(target, source, env, **kw): dst_gzip = gzip.GzipFile(str(target[0]), 'wb') with open(str(source[0]), 'r') as src_file: shutil.copyfileobj(src_file, dst_gzip) dst_gzip.close() def generate(env, **kwargs): env['BUILDERS']['__GZIPTOOL'] = SCons.Builder.Builder( action=SCons.Action.Action(GZipAction, "$GZIPTOOL_COMSTR") ) env['GZIPTOOL_COMSTR'] = kwargs.get( "GZIPTOOL_COMSTR", "Compressing $TARGET with gzip" ) def GZipTool(env, target, source): result = env.__GZIPTOOL(target=target, source=source) env.AlwaysBuild(result) return result env.AddMethod(GZipTool, 'GZip') def exists(env): return True