update_dev_server_inner.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. # -*- coding: utf-8 -*-
  2. #!/usr/bin/env python
  3. import os
  4. import hmac
  5. import hashlib
  6. import logging
  7. import datetime
  8. import daiquiri
  9. log_dir = os.environ.get('UPDATE_DEV_SERVER_LOG_DIR', '.')
  10. if not os.path.exists(log_dir):
  11. os.makedirs(log_dir)
  12. daiquiri.setup(
  13. level=logging.DEBUG,
  14. outputs=(
  15. daiquiri.output.File(os.path.join(log_dir, 'update_dev_server-errors.log'), level=logging.ERROR),
  16. daiquiri.output.TimedRotatingFile(
  17. os.path.join(log_dir, 'update_dev_server-everything.log'),
  18. level=logging.DEBUG,
  19. interval=datetime.timedelta(days=1))
  20. )
  21. )
  22. logger = daiquiri.getLogger(__name__)
  23. from sh import pwd, cd, git, supervisorctl, npm, gulp, cnpm, cp, rm, node
  24. REPO_BASE = os.environ['REPO_BASE']
  25. from flask import Flask, request
  26. app = Flask(__name__)
  27. @app.route('/update-dev-server', methods=('GET', 'POST'))
  28. def update_dev_server():
  29. REPO_DIR = '{}/UserServerTest'.format(REPO_BASE)
  30. cd(REPO_DIR)
  31. logger.info('at %s' % (pwd(),))
  32. git('fetch', '--all')
  33. #git('checkout', 'develop')
  34. #git('reset', '--hard', 'origin/develop')
  35. git('checkout', 'master')
  36. git('reset', '--hard', 'origin/master')
  37. logger.info('repo fetched')
  38. cnpm('install')
  39. gulp('all')
  40. logger.info('static file built')
  41. supervisorctl('restart testing_userserver_1 testing_celery testing_celery_poll_recharge_record')
  42. return 'ok'
  43. @app.route('/update-bluetooth-web', methods = ('GET', 'POST'))
  44. def update_bluetooth_web():
  45. REPO_DIR = '{}/bluetooth'.format(REPO_BASE)
  46. DIST_DIR = '{}/UserServerTest/dist'.format(REPO_BASE)
  47. cd(REPO_DIR)
  48. logger.info('at %s' % (pwd(),))
  49. git('fetch', '--all')
  50. git('checkout', 'for-web')
  51. git('reset', '--hard', 'origin/for-web')
  52. logger.info('repo fetched')
  53. cnpm('install')
  54. cnpm('run', 'build')
  55. rm('-rf', '%s/{agent,dealer,dealerAdmin,static,supporter,test-vue,user}' % DIST_DIR)
  56. cp('-rf', '{}/dist/agent'.format(REPO_DIR), '{}/'.format(DIST_DIR))
  57. cp('-rf', '{}/dist/dealer'.format(REPO_DIR), '{}/'.format(DIST_DIR))
  58. cp('-rf', '{}/dist/dealerAdmin'.format(REPO_DIR), '{}/'.format(DIST_DIR))
  59. cp('-rf', '{}/dist/static'.format(REPO_DIR), '{}/'.format(DIST_DIR))
  60. cp('-rf', '{}/dist/supporter'.format(REPO_DIR), '{}/'.format(DIST_DIR))
  61. cp('-rf', '{}/dist/test-vue'.format(REPO_DIR), '{}/'.format(DIST_DIR))
  62. cp('-rf', '{}/dist/user'.format(REPO_DIR), '{}/'.format(DIST_DIR))
  63. return 'ok'
  64. if __name__ == '__main__':
  65. app.run(host='127.0.0.1', port=7778)