From b161cdc7c975686fb0df5b6b67ab0340b563f300 Mon Sep 17 00:00:00 2001 From: "Rafael G. Martins" Date: Sun, 14 Jul 2019 23:17:09 +0200 Subject: make: exec: support printing blogc variables needs more tests --- src/blogc-make/exec.c | 17 +++++++++++------ src/blogc-make/exec.h | 11 ++++++----- src/blogc-make/rules.c | 31 +++++++++++++++++-------------- 3 files changed, 34 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/blogc-make/exec.c b/src/blogc-make/exec.c index a78d506..c36dc2d 100644 --- a/src/blogc-make/exec.c +++ b/src/blogc-make/exec.c @@ -218,9 +218,9 @@ list_variables(const char *key, const char *value, bc_string_t *str) char* bm_exec_build_blogc_cmd(const char *blogc_bin, bm_settings_t *settings, - bc_trie_t *global_variables, bc_trie_t *local_variables, bool listing, - const char *listing_entry, const char *template, const char *output, - bool dev, bool sources_stdin) + bc_trie_t *global_variables, bc_trie_t *local_variables, const char *print, + bool listing, const char *listing_entry, const char *template, + const char *output, bool dev, bool sources_stdin) { bc_string_t *rv = bc_string_new(); @@ -254,6 +254,10 @@ bm_exec_build_blogc_cmd(const char *blogc_bin, bm_settings_t *settings, bc_string_append(rv, " -D MAKE_ENV_DEV=1 -D MAKE_ENV='dev'"); } + if (print != NULL) { + bc_string_append_printf(rv, " -p %s", print); + } + if (listing) { bc_string_append(rv, " -l"); if (listing_entry != NULL) { @@ -285,8 +289,9 @@ bm_exec_build_blogc_cmd(const char *blogc_bin, bm_settings_t *settings, int bm_exec_blogc(bm_ctx_t *ctx, bc_trie_t *global_variables, bc_trie_t *local_variables, - bool listing, bm_filectx_t *listing_entry, bm_filectx_t *template, - bm_filectx_t *output, bc_slist_t *sources, bool only_first_source) + const char *print, bool listing, bm_filectx_t *listing_entry, + bm_filectx_t *template, bm_filectx_t *output, bc_slist_t *sources, + bool only_first_source) { if (ctx == NULL) return 1; @@ -299,7 +304,7 @@ bm_exec_blogc(bm_ctx_t *ctx, bc_trie_t *global_variables, bc_trie_t *local_varia } char *cmd = bm_exec_build_blogc_cmd(ctx->blogc, ctx->settings, global_variables, - local_variables, listing, listing_entry == NULL ? NULL : listing_entry->path, + local_variables, print, listing, listing_entry == NULL ? NULL : listing_entry->path, template->path, output->path, ctx->dev, input->len > 0); if (ctx->verbose) diff --git a/src/blogc-make/exec.h b/src/blogc-make/exec.h index e09e8ee..140ef62 100644 --- a/src/blogc-make/exec.h +++ b/src/blogc-make/exec.h @@ -19,12 +19,13 @@ char* bm_exec_find_binary(const char *argv0, const char *bin, const char *env); int bm_exec_command(const char *cmd, const char *input, char **output, char **error, bc_error_t **err); char* bm_exec_build_blogc_cmd(const char *blogc_bin, bm_settings_t *settings, - bc_trie_t *global_variables, bc_trie_t *local_variables, bool listing, - const char *listing_entry, const char *template, const char *output, bool dev, - bool sources_stdin); + bc_trie_t *global_variables, bc_trie_t *local_variables, const char *print, + bool listing, const char *listing_entry, const char *template, + const char *output, bool dev, bool sources_stdin); int bm_exec_blogc(bm_ctx_t *ctx, bc_trie_t *global_variables, bc_trie_t *local_variables, - bool listing, bm_filectx_t *listing_entry, bm_filectx_t *template, - bm_filectx_t *output, bc_slist_t *sources, bool only_first_source); + const char *print, bool listing, bm_filectx_t *listing_entry, + bm_filectx_t *template, bm_filectx_t *output, bc_slist_t *sources, + bool only_first_source); int bm_exec_blogc_runserver(bm_ctx_t *ctx, const char *host, const char *port, const char *threads); diff --git a/src/blogc-make/rules.c b/src/blogc-make/rules.c index 96cf51d..422f3a4 100644 --- a/src/blogc-make/rules.c +++ b/src/blogc-make/rules.c @@ -117,8 +117,9 @@ index_exec(bm_ctx_t *ctx, bc_slist_t *outputs, bc_trie_t *args) if (bm_rule_need_rebuild(ctx->posts_fctx, ctx->settings_fctx, ctx->listing_entry_fctx, ctx->main_template_fctx, fctx, false)) { - rv = bm_exec_blogc(ctx, variables, NULL, true, ctx->listing_entry_fctx, - ctx->main_template_fctx, fctx, ctx->posts_fctx, false); + rv = bm_exec_blogc(ctx, variables, NULL, NULL, true, + ctx->listing_entry_fctx, ctx->main_template_fctx, fctx, + ctx->posts_fctx, false); if (rv != 0) break; } @@ -176,8 +177,8 @@ atom_exec(bm_ctx_t *ctx, bc_slist_t *outputs, bc_trie_t *args) if (bm_rule_need_rebuild(ctx->posts_fctx, ctx->settings_fctx, NULL, NULL, fctx, false)) { - rv = bm_exec_blogc(ctx, variables, NULL, true, NULL, ctx->atom_template_fctx, - fctx, ctx->posts_fctx, false); + rv = bm_exec_blogc(ctx, variables, NULL, NULL, true, NULL, + ctx->atom_template_fctx, fctx, ctx->posts_fctx, false); if (rv != 0) break; } @@ -242,8 +243,8 @@ atom_tags_exec(bm_ctx_t *ctx, bc_slist_t *outputs, bc_trie_t *args) if (bm_rule_need_rebuild(ctx->posts_fctx, ctx->settings_fctx, NULL, NULL, fctx, false)) { - rv = bm_exec_blogc(ctx, variables, NULL, true, NULL, ctx->atom_template_fctx, - fctx, ctx->posts_fctx, false); + rv = bm_exec_blogc(ctx, variables, NULL, NULL, true, NULL, + ctx->atom_template_fctx, fctx, ctx->posts_fctx, false); if (rv != 0) break; } @@ -318,8 +319,9 @@ pagination_exec(bm_ctx_t *ctx, bc_slist_t *outputs, bc_trie_t *args) if (bm_rule_need_rebuild(ctx->posts_fctx, ctx->settings_fctx, ctx->listing_entry_fctx, ctx->main_template_fctx, fctx, false)) { - rv = bm_exec_blogc(ctx, variables, NULL, true, ctx->listing_entry_fctx, - ctx->main_template_fctx, fctx, ctx->posts_fctx, false); + rv = bm_exec_blogc(ctx, variables, NULL, NULL, true, + ctx->listing_entry_fctx, ctx->main_template_fctx, fctx, + ctx->posts_fctx, false); if (rv != 0) break; } @@ -384,8 +386,8 @@ posts_exec(bm_ctx_t *ctx, bc_slist_t *outputs, bc_trie_t *args) { bc_trie_t *local = bc_trie_new(NULL); bc_trie_insert(local, "MAKE_SLUG", s_fctx->slug); // no need to copy - rv = bm_exec_blogc(ctx, variables, local, false, NULL, ctx->main_template_fctx, - o_fctx, s, true); + rv = bm_exec_blogc(ctx, variables, local, NULL, false, NULL, + ctx->main_template_fctx, o_fctx, s, true); bc_trie_free(local); if (rv != 0) break; @@ -452,8 +454,9 @@ tags_exec(bm_ctx_t *ctx, bc_slist_t *outputs, bc_trie_t *args) if (bm_rule_need_rebuild(ctx->posts_fctx, ctx->settings_fctx, ctx->listing_entry_fctx, ctx->main_template_fctx, fctx, false)) { - rv = bm_exec_blogc(ctx, variables, NULL, true, ctx->listing_entry_fctx, - ctx->main_template_fctx, fctx, ctx->posts_fctx, false); + rv = bm_exec_blogc(ctx, variables, NULL, NULL, true, + ctx->listing_entry_fctx, ctx->main_template_fctx, fctx, + ctx->posts_fctx, false); if (rv != 0) break; } @@ -515,8 +518,8 @@ pages_exec(bm_ctx_t *ctx, bc_slist_t *outputs, bc_trie_t *args) { bc_trie_t *local = bc_trie_new(NULL); bc_trie_insert(local, "MAKE_SLUG", s_fctx->slug); // no need to copy - rv = bm_exec_blogc(ctx, variables, local, false, NULL, ctx->main_template_fctx, - o_fctx, s, true); + rv = bm_exec_blogc(ctx, variables, local, NULL, false, NULL, + ctx->main_template_fctx, o_fctx, s, true); bc_trie_free(local); if (rv != 0) break; -- cgit v1.2.3-18-g5258