123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- import os
- import hmac
- import hashlib
- import logging
- import datetime
- import daiquiri
- log_dir = os.environ.get('UPDATE_DEV_SERVER_LOG_DIR', '.')
- if not os.path.exists(log_dir):
- os.makedirs(log_dir)
- daiquiri.setup(
- level=logging.DEBUG,
- outputs=(
- daiquiri.output.File(os.path.join(log_dir, 'update_dev_server-errors.log'), level=logging.ERROR),
- daiquiri.output.TimedRotatingFile(
- os.path.join(log_dir, 'update_dev_server-everything.log'),
- level=logging.DEBUG,
- interval=datetime.timedelta(days=1))
- )
- )
- logger = daiquiri.getLogger(__name__)
- from sh import pwd, cd, git, supervisorctl, npm, gulp, cnpm, cp, rm, node
- REPO_BASE = os.environ['REPO_BASE']
- KEY = os.environ['KEY']
- from flask import Flask, request
- app = Flask(__name__)
- @app.route('/update-dev-server', methods=('GET', 'POST'))
- def update_dev_server():
- signature = request.headers['X-Gogs-Signature']
- if not hmac.new(key=KEY, msg=request.data, digestmod=hashlib.sha256).hexdigest() == signature:
- logger.info('signature not correct')
- return 'signature not correct'
- REPO_DIR = '{}/UserServerTest'.format(REPO_BASE)
- cd(REPO_DIR)
- logger.info('at %s' % (pwd(),))
- git('fetch', '--all')
- #git('checkout', 'develop')
- #git('reset', '--hard', 'origin/develop')
- git('checkout', 'master')
- git('reset', '--hard', 'origin/master')
- logger.info('repo fetched')
- # cnpm('install')
- gulp('all')
- logger.info('static file built')
- supervisorctl('restart testing_userserver_1 testing_celery testing_celery_poll_recharge_record')
- @app.route('/update-bluetooth-web', methods = ('GET', 'POST'))
- def update_bluetooth_web():
- signature = request.headers['X-Gogs-Signature']
- if not hmac.new(key = KEY, msg = request.data, digestmod = hashlib.sha256).hexdigest() == signature:
- logger.info('signature not correct')
- return 'signature not correct'
- REPO_DIR = '{}/bluetooth'.format(REPO_BASE)
- DIST_DIR = '{}/UserServerTest/dist'.format(REPO_BASE)
- cd(REPO_DIR)
- logger.info('at %s' % (pwd(),))
- git('fetch', '--all')
- git('checkout', 'for-web')
- git('reset', '--hard', 'origin/for-web')
- logger.info('repo fetched')
- cnpm('install')
- cnpm('run', 'build')
- rm('-rf', '%s/{agent,dealer,dealerAdmin,static,supporter,test-vue,user}' % DIST_DIR)
- cp('-rf', '{}/dist/agent'.format(REPO_DIR), '{}/'.format(DIST_DIR))
- cp('-rf', '{}/dist/dealer'.format(REPO_DIR), '{}/'.format(DIST_DIR))
- cp('-rf', '{}/dist/dealerAdmin'.format(REPO_DIR), '{}/'.format(DIST_DIR))
- cp('-rf', '{}/dist/static'.format(REPO_DIR), '{}/'.format(DIST_DIR))
- cp('-rf', '{}/dist/supporter'.format(REPO_DIR), '{}/'.format(DIST_DIR))
- cp('-rf', '{}/dist/test-vue'.format(REPO_DIR), '{}/'.format(DIST_DIR))
- cp('-rf', '{}/dist/user'.format(REPO_DIR), '{}/'.format(DIST_DIR))
- return 'ok'
- if __name__ == '__main__':
- app.run(host='0.0.0.0', port=7777)
|