def load(path=None, local=False, base_url=None): # Read default configuration file first. # So catsup can use the default value when user's conf is missing. # And user does't have to change conf file everytime he updates catsup. default_config = os.path.join(g.public_templates_path, 'config.json') config = parse(default_config) if path: user_config = parse(path) config = update_nested_dict(config, user_config) os.chdir(os.path.abspath(os.path.dirname(path))) g.theme = find_theme(config) g.source = config.config.source g.output = config.config.output g.permalink = config.permalink if base_url: g.base_url = add_slash(base_url) else: g.base_url = add_slash(config.site.url) config.site.url = g.base_url if local: import tempfile config.config.static_prefix = "/static/" config.config.output = tempfile.mkdtemp() g.static_prefix = urljoin( g.base_url, add_slash(config.config.static_prefix) ) g.theme.vars = update_nested_dict(g.theme.vars, config.theme.vars) config.theme.vars = g.theme.vars config.path = path return config
def install_theme(name): theme = find_theme(theme_name=name, silence=True) if theme: # Update theme if not os.path.exists(os.path.join(theme.path, '.git')): logger.warn("%s is not installed via git." "Can't update it." % theme.name) else: logger.info("Updating theme %s" % theme.name) call("git pull", cwd=theme.path) exit(0) if ".git" in name or "//" in name: install_from_git(name) else: search_github(name)
def install_theme(name): theme = find_theme(theme_name=name, silence=True) if theme: # Update theme if not os.path.exists(os.path.join(theme.path, '.git')): logger.warn("%s is not installed via git." "Can't update it." % theme.name) else: logger.info("Updating theme %s" % theme.name) call("git pull", cwd=theme.path) exit(0) if ".git" in name or "//" in name: install_from_git(name) else: item = search_github(name) if not item: logger.error("Can't find {} on GitHub.".format(name)) exit(1) install_from_git(item["clone_url"])