# -*- 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'] from flask import Flask, request app = Flask(__name__) @app.route('/update-dev-server', methods=('GET', 'POST')) def update_dev_server(): 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') return 'ok' @app.route('/update-bluetooth-web', methods = ('GET', 'POST')) def update_bluetooth_web(): 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='127.0.0.1', port=7778)