upload-windows-pdb.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/env python
  2. import os
  3. import glob
  4. import sys
  5. from lib.config import s3_config
  6. from lib.util import electron_gyp, execute, rm_rf, safe_mkdir, s3put
  7. SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
  8. SYMBOLS_DIR = 'dist\\symbols'
  9. DOWNLOAD_DIR = 'vendor\\brightray\\vendor\\download\\libchromiumcontent'
  10. PROJECT_NAME = electron_gyp()['project_name%']
  11. PRODUCT_NAME = electron_gyp()['product_name%']
  12. PDB_LIST = [
  13. 'out\\R\\{0}.exe.pdb'.format(PROJECT_NAME),
  14. 'out\\R\\node.dll.pdb',
  15. ]
  16. def main():
  17. os.chdir(SOURCE_ROOT)
  18. rm_rf(SYMBOLS_DIR)
  19. safe_mkdir(SYMBOLS_DIR)
  20. for pdb in PDB_LIST:
  21. run_symstore(pdb, SYMBOLS_DIR, PRODUCT_NAME)
  22. bucket, access_key, secret_key = s3_config()
  23. files = glob.glob(SYMBOLS_DIR + '/*.pdb/*/*.pdb')
  24. files = [f.lower() for f in files]
  25. upload_symbols(bucket, access_key, secret_key, files)
  26. def run_symstore(pdb, dest, product):
  27. execute(['symstore', 'add', '/r', '/f', pdb, '/s', dest, '/t', product])
  28. def upload_symbols(bucket, access_key, secret_key, files):
  29. s3put(bucket, access_key, secret_key, SYMBOLS_DIR, 'atom-shell/symbols',
  30. files)
  31. if __name__ == '__main__':
  32. sys.exit(main())