diff --git a/data/extra/templates/meson.build b/data/extra/templates/meson.build
index 4358554..421cd76 100644
--- a/data/extra/templates/meson.build
+++ b/data/extra/templates/meson.build
@@ -9,7 +9,7 @@ foreach skeleton_name : skeleton_names
command : [tar, 'zcf', '@OUTPUT@', '-C', '../data/extra/templates/skeletons', skeleton_name],
input : 'skeletons' + '/' + skeleton_name,
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,
)
diff --git a/data/extra/templates/templates.edc b/data/extra/templates/templates.edc
index 5bc9a1d..edc52e6 100644
--- a/data/extra/templates/templates.edc
+++ b/data/extra/templates/templates.edc
@@ -5,7 +5,7 @@ collections {
data {
item: "title" "C EFL Project";
- item: "path" "skeletons/eflproject.tar.gz";
+ item: "path" "eflproject";
item: "description"
"Begin your C programming EFL project. All content is freely modifiable and distributable and licensed in the public-domain.
Happy hacking!";
}
@@ -27,7 +27,7 @@ collections {
data {
item: "title" "Python EFL Project";
- item: "path" "skeletons/eflproject_python.tar.gz";
+ item: "path" "eflproject_python";
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.";
}
diff --git a/src/bin/edi_build_main.c b/src/bin/edi_build_main.c
index 9cf9ce6..1d36b9c 100644
--- a/src/bin/edi_build_main.c
+++ b/src/bin/edi_build_main.c
@@ -107,9 +107,9 @@ static void
_edi_build_create_start(int argc, int arg0, char **argv)
{
elm_init(argc, argv);
- edi_create_efl_project(argv[arg0 + 1], argv[arg0 + 2], argv[arg0 + 3],
- argv[arg0 + 4], argv[arg0 + 5], argv[arg0 + 6],
- _edi_build_create_done_cb);
+ edi_create_project(argv[arg0 + 1], argv[arg0 + 2], argv[arg0 + 3],
+ argv[arg0 + 4], argv[arg0 + 5], argv[arg0 + 6],
+ _edi_build_create_done_cb);
}
EAPI_MAIN int
@@ -165,7 +165,7 @@ main(int argc, char **argv)
if (argc - args != 7)
{
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");
goto end;
}
diff --git a/src/bin/screens/edi_welcome.c b/src/bin/screens/edi_welcome.c
index d623edd..be12696 100644
--- a/src/bin/screens/edi_welcome.c
+++ b/src/bin/screens/edi_welcome.c
@@ -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])
{
- edi_create_efl_project(template->skeleton_path, path, name, url, user, email,
- _edi_welcome_project_new_create_done_cb);
+ edi_create_example(template->path, path, name,
+ _edi_welcome_project_new_create_done_cb);
}
else
{
- if (path && !path[0])
+ if (!path || !path[0])
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);
}
}
@@ -508,13 +508,8 @@ _edi_welcome_project_new_cb(void *data, Evas_Object *obj EINA_UNUSED, void *even
EINA_LIST_FREE(_available_templates, 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(path);
-
- snprintf(path, sizeof(path), "%s/examples", _edi_config_dir_get());
_edi_examples_discover(PACKAGE_DATA_DIR "/examples");
- _edi_examples_discover(path);
content = elm_box_add(naviframe);
evas_object_size_hint_weight_set(content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
diff --git a/src/lib/edi_create.c b/src/lib/edi_create.c
index a293a8f..f000013 100644
--- a/src/lib/edi_create.c
+++ b/src/lib/edi_create.c
@@ -298,12 +298,12 @@ _edi_create_extract_done(void *data, int type EINA_UNUSED, void *event EINA_UNUS
}
EAPI void
-edi_create_efl_project(const char *skelpath, const char *parentdir,
- const char *name, const char *url, const char *user,
- const char *email, Edi_Create_Cb func)
+edi_create_project(const char *template_name, const char *parentdir,
+ const char *name, const char *url, const char *user,
+ const char *email, Edi_Create_Cb func)
{
char *cmd, *extract;
- char tmp[PATH_MAX], dest[PATH_MAX];
+ char tmp[PATH_MAX], dest[PATH_MAX], skelpath[PATH_MAX];
Edi_Create *data;
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(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);
DBG("Extracting project files from %s\n", skelpath);
diff --git a/src/lib/edi_create.h b/src/lib/edi_create.h
index 96ea7bc..19315b4 100644
--- a/src/lib/edi_create.h
+++ b/src/lib/edi_create.h
@@ -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
*/
EAPI void
-edi_create_efl_project(const char *skelpath, const char *parentdir,
- const char *name, const char *url, const char *user,
- const char *email, Edi_Create_Cb func);
+edi_create_project(const char *template_name, const char *parentdir,
+ const char *name, const char *url, const char *user,
+ const char *email, Edi_Create_Cb func);
/**
* @}