def compile_and_cache_js(js_dirs, cache_dir, add_settings=False, app_name=None): """ Return the cache_name of the compiled file It has been compiled and written to a cache file """ js_files = [] for js_dir in js_dirs: js_files += list_media_in_dirs("js", js_dir) if not app_name: app_name = "js" timestamp = latest_timestamp(js_files) cache_name = generate_cache_name("js", timestamp, app_name) cache_fullpath = os.path.join(cache_dir, cache_name) if not os.path.isfile(cache_fullpath): if dirs.remove_old_files(): unlink_cache(cache_dir, "js", app_name) cache_file = open(cache_fullpath, "w") js_contents = compile_files(js_files) if add_settings: js_contents = "%s\n%s" % (get_js_settings(), js_contents) cache_file.write(minify.jsmin(js_contents)) cache_file.close() return cache_name
def handle(self, *args, **options): """ Create the settings file, write to the main JS directory """ if len(args) > 0: filename = args[0] else: filename = defaults.JS_SETTINGS_FILENAME if not filename.endswith(".js"): filename = "%s.js" % filename js_dir = get_main_js_dir() js_settings = get_js_settings() settings_file = open(os.path.join(js_dir, filename), "w") settings_file.write(js_settings) settings_file.close()