1#!/usr/bin/env python 2# Copyright (c) 2012 The Chromium Authors. All rights reserved. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6import optparse 7import os 8import sys 9import tarfile 10 11import buildbot_common 12 13 14def main(args): 15 parser = optparse.OptionParser() 16 parser.add_option('--install-dir', 17 help='Install Directory', 18 dest='install_dir', 19 default='naclmono') 20 parser.add_option('--tar-path', 21 help='Tarfile path', 22 dest='tar_path', 23 default='naclmono_%pepperrev%.bz2') 24 parser.add_option('--upload-path', 25 help='Upload path (nativeclient-mirror/nacl/nacl_sdk/XXX)', 26 dest='upload_path', 27 default=None) 28 parser.add_option('--pepper-revision', 29 help='Pepper revision', 30 dest='pepper_revision', 31 default=None) 32 parser.add_option('--skip-upload', 33 help='Skips upload step', 34 action="store_true", 35 dest='skip_upload') 36 (options, args) = parser.parse_args(args[1:]) 37 38 if not options.upload_path: 39 buildbot_common.ErrorExit('--upload-path is required') 40 if not options.pepper_revision: 41 buildbot_common.ErrorExit('--pepper-revision is required') 42 43 options.tar_path = options.tar_path.replace('%pepperrev%', 44 options.pepper_revision) 45 46 install_folders = ['bin', 'etc', 'include', 'lib', 'lib32', 'libarm', 'share'] 47 48 buildbot_common.BuildStep('Archive Build') 49 tar_file = None 50 buildbot_common.RemoveFile(options.tar_path) 51 try: 52 tar_file = tarfile.open(options.tar_path, mode='w:bz2', dereference=True) 53 for subfolder in install_folders: 54 tar_file.add(os.path.join(options.install_dir, subfolder), 55 arcname=subfolder) 56 finally: 57 if tar_file: 58 tar_file.close() 59 60 if not options.skip_upload: 61 buildbot_common.Archive(os.path.basename(options.tar_path), 62 'nativeclient-mirror/nacl/nacl_sdk/%s' % options.upload_path, 63 cwd=os.path.dirname(os.path.abspath(options.tar_path))) 64 65if __name__ == '__main__': 66 sys.exit(main(sys.argv)) 67