Ejemplo n.º 1
0
    def test_10_bootstrap(self):
        site = "site-A"
        TT.bootstrap(site, self.workdir, site_template="rhui",
                     site_ctxdir=os.path.join(TOPDIR, "conf"),
                     tpaths=[os.path.join(TOPDIR, "templates")])

        sitedir = os.path.join(self.workdir, site)

        self.assertTrue(os.path.exists(sitedir))
        self.assertTrue(bool(U.sglob(os.path.join(sitedir, "*.yml"))))
        for x in ("Makefile", ):
            self.assertTrue(os.path.exists(os.path.join(self.workdir, x)))
Ejemplo n.º 2
0
def bootstrap(site,
              workdir,
              site_template=G.M_SITE_DEFAULT,
              site_ctxdir=G.M_CONF_TOPDIR,
              tpaths=[]):
    """
    Bootstrap the site by arranging default configuration files.

    :param site: Site name, ex. "default".
    :param workdir: Working dir to save results.
    :param site_template: Site template name, ex. "default".
    :param site_ctxdir: Top dir to hold sites' template configuration files
    :param tpaths: Templates path list
    """
    ctx = dict(site=site, workdir=workdir, site_template=site_template)
    ctx_outdir = os.path.join(workdir, site)

    if not os.path.exists(ctx_outdir):
        logging.info("Creating site ctx dir: " + ctx_outdir)
        os.makedirs(ctx_outdir)

    for conf in U.sglob(os.path.join(site_ctxdir, site_template, "*.yml")):
        os.symlink(os.path.abspath(conf),
                   os.path.join(ctx_outdir, os.path.basename(conf)))

    for tmpldir in (os.path.join(d, "bootstrap", site_template)
                    for d in tpaths):
        if not tmpldir.endswith(os.path.sep):
            tmpldir += os.path.sep

        for dirpath, dirnames, filenames in os.walk(tmpldir):
            reldir = dirpath.replace(tmpldir, '')
            logging.debug("tmpldir={}, reldir={}, "
                          "dirpath={}".format(tmpldir, reldir, dirpath))

            for fn in filenames:
                (fn_base, ext) = os.path.splitext(fn)
                if ext == ".j2":
                    logging.debug("Jinja2 template found: " + fn)
                    ofn = os.path.join(workdir, reldir, fn_base)
                else:
                    ofn = os.path.join(workdir, reldir, fn)

                miniascape.template.render_to(fn, ctx, ofn, [dirpath] + tpaths)
Ejemplo n.º 3
0
def bootstrap(site, workdir, site_template=G.M_SITE_DEFAULT,
              site_ctxdir=G.M_CONF_TOPDIR, tpaths=[]):
    """
    Bootstrap the site by arranging default configuration files.

    :param site: Site name, ex. "default".
    :param workdir: Working dir to save results.
    :param site_template: Site template name, ex. "default".
    :param site_ctxdir: Top dir to hold sites' template configuration files
    :param tpaths: Templates path list
    """
    ctx = dict(site=site, workdir=workdir, site_template=site_template)
    ctx_outdir = os.path.join(workdir, site)

    if not os.path.exists(ctx_outdir):
        logging.info("Creating site ctx dir: " + ctx_outdir)
        os.makedirs(ctx_outdir)

    for conf in U.sglob(os.path.join(site_ctxdir, site_template, "*.yml")):
        os.symlink(os.path.abspath(conf),
                   os.path.join(ctx_outdir, os.path.basename(conf)))

    for tmpldir in (os.path.join(d, "bootstrap", site_template) for d
                    in tpaths):
        if not tmpldir.endswith(os.path.sep):
            tmpldir += os.path.sep

        for dirpath, dirnames, filenames in os.walk(tmpldir):
            reldir = dirpath.replace(tmpldir, '')
            logging.debug("tmpldir={}, reldir={}, "
                          "dirpath={}".format(tmpldir, reldir, dirpath))

            for fn in filenames:
                (fn_base, ext) = os.path.splitext(fn)

                if ext == ".j2":
                    logging.debug("Jinja2 template found: " + fn)
                    T.renderto([dirpath] + tpaths, ctx, fn,
                               os.path.join(workdir, reldir, fn_base))
                else:
                    T.renderto([dirpath] + tpaths, {}, fn,
                               os.path.join(workdir, reldir, fn))