def handle(self, options, global_options, *args): from uliweb.utils.pyini import Ini from uliweb.utils.common import pkg from uliweb.contrib.template.tags import find from uliweb.contrib.staticfiles import url_for_static from uliweb import json_dumps if not options.dest and not options.app: print 'Error: Please use -d to specify output app' sys.exit(1) app = self.get_application(global_options) if options.app: settings_file = pkg.resource_filename(options.app, 'settings.ini') x = Ini(settings_file) else: x = app.settings if options.dest: filename = pkg.resource_filename(options.dest, '/static/jsmodules.js') else: filename = pkg.resource_filename(options.app, '/static/jsmodules.js') d = {} for name in x.get('TEMPLATE_USE', {}).keys(): s = find(name) m = s[0] + s[1] d[name] = [url_for_static(i) for i in m if not i.startswith('<!--')] print 'jsmodules.js is saved in {} please check'.format(filename) with open(filename, 'wb') as f: f.write('var jsmodules = ') f.write(json_dumps(d))
def init_static_combine(): from uliweb import settings from hashlib import md5 import os PLUGINS = settings.get_var("TEMPLATE_GULP") d = {} if settings.get_var('STATIC_COMBINE_CONFIG/enable', False): # for k, v in settings.get('STATIC_COMBINE', {}).items(): # key = '_cmb_' + md5(''.join(v)).hexdigest() + os.path.splitext(v[0])[1] # d[key] = v from uliweb.contrib.template.tags import find for k, v in PLUGINS.items(): js_list = [] css_list = [] for x in v: s = find(x) m = s[0] + s[1] for i in m: if not i.startswith('<!--'): e = os.path.splitext(i)[1] if e == ".css": css_list.append(i) elif e == ".js": js_list.append(i) if js_list: d[k+".js"] = js_list if css_list: d[k + ".css"] = css_list return d
def handle(self, options, global_options, *args): from uliweb.utils.pyini import Ini from uliweb.utils.common import pkg from uliweb.contrib.template.tags import find from uliweb.contrib.staticfiles import url_for_static from uliweb import json_dumps import ConfigParser if not options.dest and not options.app: print("Error: Please use -d to specify output app") sys.exit(1) app = self.get_application(global_options) from uliweb import settings if options.dest: module = options.dest filename = pkg.resource_filename(options.dest, 'gulp_settings.ini') else: module = options.app filename = pkg.resource_filename(options.app, 'gulp_settings.ini') with open(filename, 'wb') as f: template_gulp = settings.get("TEMPLATE_GULP", {}) # 导出settings中的gulp配置 template_use_keys = settings.get( "TEMPLATE_USE", {}).keys() # 导出settings中的plugins的名字 for dist, items in template_gulp.items(): # 有序遍历gulp的concat配置 item_dist = dist for name in items: if name in template_use_keys: # 如果plugins中有该插件则在ini中写入该配置 s = find(name) m = s[0] + s[1] f.write("[template_use." + name + "]\r\n") for i in m: #if no_js then skip javascript files if options.no_js and (i.startswith('<!--') or i.endswith('.js')): continue if not i.startswith('<!--'): f.write("toplinks[] = " + app.get_file(i, 'static') + "\r\n") f.write("dist = " + item_dist + "\r\n") f.write("\r\n") gulp_dist = pkg.resource_filename(module, '/static') gulp_settings = filename gulp_path = pkg.resource_filename("uliweb_ui", "") import os terminal_command = "cd " + gulp_path + " && gulp --dist " + gulp_dist + " --settings " + gulp_settings print(">>> {}".format(terminal_command)) os.system(terminal_command)
def handle(self, options, global_options, *args): from uliweb.utils.pyini import Ini from uliweb.utils.common import pkg from uliweb.contrib.template.tags import find from uliweb.contrib.staticfiles import url_for_static from uliweb import json_dumps import ConfigParser if not options.dest and not options.app: print "Error: Please use -d to specify output app" sys.exit(1) app = self.get_application(global_options) from uliweb import settings if options.dest: module = options.dest filename = pkg.resource_filename(options.dest, 'gulp_settings.ini') else: module = options.app filename = pkg.resource_filename(options.app, 'gulp_settings.ini') with open(filename, 'wb') as f: template_gulp = settings.get("TEMPLATE_GULP", {}) # 导出settings中的gulp配置 template_use_keys = settings.get("TEMPLATE_USE", {}).keys() # 导出settings中的plugins的名字 for dist,items in template_gulp.items(): # 有序遍历gulp的concat配置 item_dist = dist for name in items: if name in template_use_keys: # 如果plugins中有该插件则在ini中写入该配置 s = find(name) m = s[0] + s[1] f.write("[template_use." + name + "]\r\n") for i in m: if not i.startswith('<!--'): f.write("toplinks[] = " + app.get_file(i, 'static') + "\r\n") f.write("dist = " + item_dist + "\r\n") f.write("\r\n") gulp_dist = pkg.resource_filename(module, '/static'); gulp_settings = filename gulp_path = pkg.resource_filename("uliweb_ui","") import os terminal_command = "cd "+gulp_path+ " && gulp --dist " + gulp_dist + " --settings " + gulp_settings print ">>> {}".format(terminal_command) os.system(terminal_command)
def handle(self, options, global_options, *args): from uliweb.utils.pyini import Ini from uliweb.utils.common import pkg from uliweb.contrib.template.tags import find from uliweb.contrib.staticfiles import url_for_static from uliweb import json_dumps if not options.dest and not options.app: print('Error: Please use -d to specify output app') sys.exit(1) app = self.get_application(global_options) if options.app: settings_file = pkg.resource_filename(options.app, 'settings.ini') x = Ini(settings_file) else: x = app.settings if options.dest: filename = pkg.resource_filename(options.dest, '/static/jsmodules.js') else: filename = pkg.resource_filename(options.app, '/static/jsmodules.js') d = {} for name in x.get('TEMPLATE_USE', {}).keys(): s = find(name) m = s[0] + s[1] d[name] = [ url_for_static(i) for i in m if not i.startswith('<!--') ] print('jsmodules.js is saved in {} please check'.format(filename)) with open(filename, 'wb') as f: f.write('var jsmodules = ') f.write(json_dumps(d))
def init_static_combine(): from uliweb import settings from hashlib import md5 import os PLUGINS = settings.get_var("TEMPLATE_GULP") d = {} if settings.get_var('STATIC_COMBINE_CONFIG/enable', False): include_js = settings.get_var('STATIC_COMBINE_CONFIG/include_js', False) # for k, v in settings.get('STATIC_COMBINE', {}).items(): # key = '_cmb_' + md5(''.join(v)).hexdigest() + os.path.splitext(v[0])[1] # d[key] = v from uliweb.contrib.template.tags import find for k, v in PLUGINS.items(): js_list = [] css_list = [] for x in v: s = find(x) m = s[0] + s[1] for i in m: if not include_js and (i.startswith('<!--') or i.endswith('.js')): continue if not i.startswith('<!--'): e = os.path.splitext(i)[1] if e == ".css": css_list.append(i) elif e == ".js": js_list.append(i) if js_list: d[k + ".js"] = js_list if css_list: d[k + ".css"] = css_list return d