upload-node-headers.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #!/usr/bin/env python
  2. import argparse
  3. import glob
  4. import os
  5. import shutil
  6. import sys
  7. from lib.config import PLATFORM, get_target_arch, s3_config
  8. from lib.util import safe_mkdir, scoped_cwd, s3put, get_out_dir, get_dist_dir
  9. SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
  10. DIST_DIR = get_dist_dir()
  11. OUT_DIR = get_out_dir()
  12. GEN_DIR = os.path.join(OUT_DIR, 'gen')
  13. HEADER_TAR_NAMES = [
  14. 'node-{0}.tar.gz',
  15. 'node-{0}-headers.tar.gz',
  16. 'iojs-{0}.tar.gz',
  17. 'iojs-{0}-headers.tar.gz'
  18. ]
  19. def main():
  20. args = parse_args()
  21. # Upload node's headers to S3.
  22. bucket, access_key, secret_key = s3_config()
  23. upload_node(bucket, access_key, secret_key, args.version)
  24. def parse_args():
  25. parser = argparse.ArgumentParser(description='upload sumsha file')
  26. parser.add_argument('-v', '--version', help='Specify the version',
  27. required=True)
  28. return parser.parse_args()
  29. def upload_node(bucket, access_key, secret_key, version):
  30. with scoped_cwd(GEN_DIR):
  31. generated_tar = os.path.join(GEN_DIR, 'node_headers.tar.gz')
  32. for header_tar in HEADER_TAR_NAMES:
  33. versioned_header_tar = header_tar.format(version)
  34. shutil.copy2(generated_tar, os.path.join(GEN_DIR, versioned_header_tar))
  35. s3put(bucket, access_key, secret_key, GEN_DIR,
  36. 'atom-shell/dist/{0}'.format(version), glob.glob('node-*.tar.gz'))
  37. s3put(bucket, access_key, secret_key, GEN_DIR,
  38. 'atom-shell/dist/{0}'.format(version), glob.glob('iojs-*.tar.gz'))
  39. if PLATFORM == 'win32':
  40. if get_target_arch() == 'ia32':
  41. node_lib = os.path.join(DIST_DIR, 'node.lib')
  42. iojs_lib = os.path.join(DIST_DIR, 'win-x86', 'iojs.lib')
  43. v4_node_lib = os.path.join(DIST_DIR, 'win-x86', 'node.lib')
  44. else:
  45. node_lib = os.path.join(DIST_DIR, 'x64', 'node.lib')
  46. iojs_lib = os.path.join(DIST_DIR, 'win-x64', 'iojs.lib')
  47. v4_node_lib = os.path.join(DIST_DIR, 'win-x64', 'node.lib')
  48. safe_mkdir(os.path.dirname(node_lib))
  49. safe_mkdir(os.path.dirname(iojs_lib))
  50. # Copy electron.lib to node.lib and iojs.lib.
  51. electron_lib = os.path.join(OUT_DIR, 'electron.lib')
  52. shutil.copy2(electron_lib, node_lib)
  53. shutil.copy2(electron_lib, iojs_lib)
  54. shutil.copy2(electron_lib, v4_node_lib)
  55. # Upload the node.lib.
  56. s3put(bucket, access_key, secret_key, DIST_DIR,
  57. 'atom-shell/dist/{0}'.format(version), [node_lib])
  58. # Upload the iojs.lib.
  59. s3put(bucket, access_key, secret_key, DIST_DIR,
  60. 'atom-shell/dist/{0}'.format(version), [iojs_lib])
  61. # Upload the v4 node.lib.
  62. s3put(bucket, access_key, secret_key, DIST_DIR,
  63. 'atom-shell/dist/{0}'.format(version), [v4_node_lib])
  64. if __name__ == '__main__':
  65. sys.exit(main())