templtaes: refactor to use template name rather than path

This makes our command line interface easier to use.
We lose the search paths for templates, but we did not use it
This commit is contained in:
Andy Williams 2018-01-06 13:46:43 +00:00
parent 305c7c4b43
commit a99382bed8
6 changed files with 21 additions and 24 deletions

View File

@ -9,7 +9,7 @@ foreach skeleton_name : skeleton_names
command : [tar, 'zcf', '@OUTPUT@', '-C', '../data/extra/templates/skeletons', skeleton_name], command : [tar, 'zcf', '@OUTPUT@', '-C', '../data/extra/templates/skeletons', skeleton_name],
input : 'skeletons' + '/' + skeleton_name, input : 'skeletons' + '/' + skeleton_name,
output : skeleton_name + '.tar.gz', output : skeleton_name + '.tar.gz',
install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'edi', 'templates', 'skeletons'), install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'edi', 'templates'),
install : true, install : true,
) )

View File

@ -5,7 +5,7 @@ collections {
data { data {
item: "title" "C EFL Project"; item: "title" "C EFL Project";
item: "path" "skeletons/eflproject.tar.gz"; item: "path" "eflproject";
item: "description" item: "description"
"Begin your C programming EFL project. All content is freely modifiable and distributable and licensed in the public-domain.<br><br>Happy hacking!"; "Begin your C programming EFL project. All content is freely modifiable and distributable and licensed in the public-domain.<br><br>Happy hacking!";
} }
@ -27,7 +27,7 @@ collections {
data { data {
item: "title" "Python EFL Project"; item: "title" "Python EFL Project";
item: "path" "skeletons/eflproject_python.tar.gz"; item: "path" "eflproject_python";
item: "description" item: "description"
"Start your new EFL Python programming project. All code is in the public-domain, you are free to modify and distribute as you wish."; "Start your new EFL Python programming project. All code is in the public-domain, you are free to modify and distribute as you wish.";
} }

View File

@ -107,9 +107,9 @@ static void
_edi_build_create_start(int argc, int arg0, char **argv) _edi_build_create_start(int argc, int arg0, char **argv)
{ {
elm_init(argc, argv); elm_init(argc, argv);
edi_create_efl_project(argv[arg0 + 1], argv[arg0 + 2], argv[arg0 + 3], edi_create_project(argv[arg0 + 1], argv[arg0 + 2], argv[arg0 + 3],
argv[arg0 + 4], argv[arg0 + 5], argv[arg0 + 6], argv[arg0 + 4], argv[arg0 + 5], argv[arg0 + 6],
_edi_build_create_done_cb); _edi_build_create_done_cb);
} }
EAPI_MAIN int EAPI_MAIN int
@ -165,7 +165,7 @@ main(int argc, char **argv)
if (argc - args != 7) if (argc - args != 7)
{ {
fprintf(stderr, _("create requires 6 additional parameters:\n")); fprintf(stderr, _("create requires 6 additional parameters:\n"));
fprintf(stderr, " skeleton, parent_path, project_name, " fprintf(stderr, " template_name, parent_path, project_name, "
"project_url, creator_name, creator_email\n"); "project_url, creator_name, creator_email\n");
goto end; goto end;
} }

View File

@ -339,14 +339,14 @@ _edi_welcome_project_new_create_cb(void *data EINA_UNUSED, Evas_Object *obj EINA
if (template && path && path[0] && name && name[0]) if (template && path && path[0] && name && name[0])
{ {
edi_create_efl_project(template->skeleton_path, path, name, url, user, email, edi_create_example(template->path, path, name,
_edi_welcome_project_new_create_done_cb); _edi_welcome_project_new_create_done_cb);
} }
else else
{ {
if (path && !path[0]) if (!path || !path[0])
elm_object_focus_set(_create_inputs[0], EINA_TRUE); elm_object_focus_set(_create_inputs[0], EINA_TRUE);
else if (name && !name[0]) else if (!name || !name[0])
elm_object_focus_set(_create_inputs[1], EINA_TRUE); elm_object_focus_set(_create_inputs[1], EINA_TRUE);
} }
} }
@ -508,13 +508,8 @@ _edi_welcome_project_new_cb(void *data, Evas_Object *obj EINA_UNUSED, void *even
EINA_LIST_FREE(_available_templates, template) EINA_LIST_FREE(_available_templates, template)
_edi_template_free(template); _edi_template_free(template);
snprintf(path, sizeof(path), "%s/templates", _edi_config_dir_get());
_edi_templates_discover(PACKAGE_DATA_DIR "/templates"); _edi_templates_discover(PACKAGE_DATA_DIR "/templates");
_edi_templates_discover(path);
snprintf(path, sizeof(path), "%s/examples", _edi_config_dir_get());
_edi_examples_discover(PACKAGE_DATA_DIR "/examples"); _edi_examples_discover(PACKAGE_DATA_DIR "/examples");
_edi_examples_discover(path);
content = elm_box_add(naviframe); content = elm_box_add(naviframe);
evas_object_size_hint_weight_set(content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);

View File

@ -298,12 +298,12 @@ _edi_create_extract_done(void *data, int type EINA_UNUSED, void *event EINA_UNUS
} }
EAPI void EAPI void
edi_create_efl_project(const char *skelpath, const char *parentdir, edi_create_project(const char *template_name, const char *parentdir,
const char *name, const char *url, const char *user, const char *name, const char *url, const char *user,
const char *email, Edi_Create_Cb func) const char *email, Edi_Create_Cb func)
{ {
char *cmd, *extract; char *cmd, *extract;
char tmp[PATH_MAX], dest[PATH_MAX]; char tmp[PATH_MAX], dest[PATH_MAX], skelpath[PATH_MAX];
Edi_Create *data; Edi_Create *data;
Ecore_Event_Handler *handler; Ecore_Event_Handler *handler;
@ -311,6 +311,8 @@ edi_create_efl_project(const char *skelpath, const char *parentdir,
snprintf(tmp, sizeof(tmp), "%s/edi_%s", eina_environment_tmp_get(), name); snprintf(tmp, sizeof(tmp), "%s/edi_%s", eina_environment_tmp_get(), name);
snprintf(dest, sizeof(dest), "%s/%s", parentdir, name); snprintf(dest, sizeof(dest), "%s/%s", parentdir, name);
snprintf(skelpath, sizeof(skelpath), PACKAGE_DATA_DIR "/templates/%s.tar.gz", template_name);
INF("Creating project \"%s\" at path %s for %s<%s>\n", name, dest, user, email); INF("Creating project \"%s\" at path %s for %s<%s>\n", name, dest, user, email);
DBG("Extracting project files from %s\n", skelpath); DBG("Extracting project files from %s\n", skelpath);

View File

@ -23,14 +23,14 @@ typedef void (*Edi_Create_Cb)(const char *path, Eina_Bool success);
*/ */
/** /**
* Create a new standard EFL project. * Create a new project from an Edi template.
* *
* @ingroup Creation * @ingroup Creation
*/ */
EAPI void EAPI void
edi_create_efl_project(const char *skelpath, const char *parentdir, edi_create_project(const char *template_name, const char *parentdir,
const char *name, const char *url, const char *user, const char *name, const char *url, const char *user,
const char *email, Edi_Create_Cb func); const char *email, Edi_Create_Cb func);
/** /**
* @} * @}