summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/as-builder.c9
-rw-r--r--libappstream-builder/asb-context.c69
-rw-r--r--libappstream-builder/asb-context.h2
-rw-r--r--libappstream-builder/asb-self-test.c24
4 files changed, 63 insertions, 41 deletions
diff --git a/client/as-builder.c b/client/as-builder.c
index 7f22323..e981456 100644
--- a/client/as-builder.c
+++ b/client/as-builder.c
@@ -84,6 +84,7 @@ main (int argc, char **argv)
_cleanup_free_ gchar *extra_screenshots = NULL;
_cleanup_free_ gchar *log_dir = NULL;
_cleanup_free_ gchar *old_metadata = NULL;
+ _cleanup_free_ gchar *origin = NULL;
_cleanup_free_ gchar *output_dir = NULL;
_cleanup_free_ gchar *packages_dir = NULL;
_cleanup_free_ gchar *screenshot_dir = NULL;
@@ -137,6 +138,9 @@ main (int argc, char **argv)
_("Set the cache directory"), "DIR" },
{ "basename", '\0', 0, G_OPTION_ARG_STRING, &basename,
/* TRANSLATORS: command line option */
+ _("Set the basenames of the output files"), "NAME" },
+ { "origin", '\0', 0, G_OPTION_ARG_STRING, &origin,
+ /* TRANSLATORS: command line option */
_("Set the origin name"), "NAME" },
{ "max-threads", '\0', 0, G_OPTION_ARG_INT, &max_threads,
/* TRANSLATORS: command line option */
@@ -199,7 +203,9 @@ main (int argc, char **argv)
if (cache_dir == NULL)
cache_dir = g_strdup ("./cache");
if (basename == NULL)
- basename = g_strdup ("example");
+ basename = g_strdup ("appstream");
+ if (origin == NULL)
+ origin = g_strdup ("example");
if (screenshot_uri == NULL)
screenshot_uri = g_strdup ("http://www.example.com/screenshots/");
if (extra_appstream == NULL)
@@ -227,6 +233,7 @@ main (int argc, char **argv)
asb_context_set_output_dir (ctx, output_dir);
asb_context_set_cache_dir (ctx, cache_dir);
asb_context_set_basename (ctx, basename);
+ asb_context_set_origin (ctx, origin);
asb_context_set_max_threads (ctx, max_threads);
asb_context_set_min_icon_size (ctx, min_icon_size);
ret = asb_context_setup (ctx, &error);
diff --git a/libappstream-builder/asb-context.c b/libappstream-builder/asb-context.c
index c79f95f..e3c8402 100644
--- a/libappstream-builder/asb-context.c
+++ b/libappstream-builder/asb-context.c
@@ -81,6 +81,7 @@ struct _AsbContextPrivate
gchar *temp_dir;
gchar *output_dir;
gchar *basename;
+ gchar *origin;
};
G_DEFINE_TYPE_WITH_PRIVATE (AsbContext, asb_context, G_TYPE_OBJECT)
@@ -410,7 +411,7 @@ asb_context_set_output_dir (AsbContext *ctx, const gchar *output_dir)
/**
* asb_context_set_basename:
* @ctx: A #AsbContext
- * @basename: AppStream basename, e.g. "fedora-21"
+ * @basename: AppStream file basename, e.g. "appstream"
*
* Sets the basename for the two metadata files.
*
@@ -424,6 +425,22 @@ asb_context_set_basename (AsbContext *ctx, const gchar *basename)
}
/**
+ * asb_context_set_origin:
+ * @ctx: A #AsbContext
+ * @origin: AppStream origin, e.g. "fedora-21"
+ *
+ * Sets the origin for the two metadata files.
+ *
+ * Since: 0.3.4
+ **/
+void
+asb_context_set_origin (AsbContext *ctx, const gchar *origin)
+{
+ AsbContextPrivate *priv = GET_PRIVATE (ctx);
+ priv->origin = g_strdup (origin);
+}
+
+/**
* asb_context_get_add_cache_id:
* @ctx: A #AsbContext
*
@@ -701,11 +718,11 @@ asb_context_setup (AsbContext *ctx, GError **error)
_cleanup_free_ gchar *icons_dir = NULL;
/* required stuff set */
- if (priv->basename == NULL) {
+ if (priv->origin == NULL) {
g_set_error_literal (error,
ASB_PLUGIN_ERROR,
ASB_PLUGIN_ERROR_FAILED,
- "basename not set!");
+ "origin not set!");
return FALSE;
}
if (priv->output_dir == NULL) {
@@ -912,17 +929,17 @@ asb_task_process_func (gpointer data, gpointer user_data)
static gboolean
asb_context_write_icons (AsbContext *ctx,
const gchar *temp_dir,
- const gchar *output_dir,
- const gchar *basename,
GError **error)
{
+ AsbContextPrivate *priv = GET_PRIVATE (ctx);
_cleanup_free_ gchar *filename = NULL;
_cleanup_free_ gchar *icons_dir = NULL;
icons_dir = g_build_filename (temp_dir, "icons", NULL);
if (!g_file_test (icons_dir, G_FILE_TEST_EXISTS))
return TRUE;
- filename = g_strdup_printf ("%s/%s-icons.tar.gz", output_dir, basename);
+ filename = g_strdup_printf ("%s/%s-icons.tar.gz",
+ priv->output_dir, priv->basename);
g_print ("Writing %s...\n", filename);
return asb_utils_write_archive_dir (filename, icons_dir, error);
}
@@ -931,10 +948,7 @@ asb_context_write_icons (AsbContext *ctx,
* asb_context_write_xml:
**/
static gboolean
-asb_context_write_xml (AsbContext *ctx,
- const gchar *output_dir,
- const gchar *basename,
- GError **error)
+asb_context_write_xml (AsbContext *ctx, GError **error)
{
AsApp *app;
AsbContextPrivate *priv = GET_PRIVATE (ctx);
@@ -973,11 +987,13 @@ asb_context_write_xml (AsbContext *ctx,
}
}
- filename = g_strdup_printf ("%s/%s.xml.gz", output_dir, basename);
+ filename = g_strdup_printf ("%s/%s.xml.gz",
+ priv->output_dir,
+ priv->basename);
file = g_file_new_for_path (filename);
g_print ("Writing %s...\n", filename);
- as_store_set_origin (store, basename);
+ as_store_set_origin (store, priv->origin);
as_store_set_api_version (store, priv->api_version);
if (priv->add_cache_id) {
_cleanup_free_ gchar *builder_id = asb_utils_get_builder_id ();
@@ -1192,10 +1208,7 @@ asb_context_detect_missing_parents (AsbContext *ctx, GError **error)
* asb_context_write_xml_fail:
**/
static gboolean
-asb_context_write_xml_fail (AsbContext *ctx,
- const gchar *output_dir,
- const gchar *basename,
- GError **error)
+asb_context_write_xml_fail (AsbContext *ctx, GError **error)
{
AsApp *app;
AsbContextPrivate *priv = GET_PRIVATE (ctx);
@@ -1217,11 +1230,12 @@ asb_context_write_xml_fail (AsbContext *ctx,
continue;
as_store_add_app (priv->store_failed, app);
}
- filename = g_strdup_printf ("%s/%s-failed.xml.gz", output_dir, basename);
+ filename = g_strdup_printf ("%s/%s-failed.xml.gz",
+ priv->output_dir, priv->basename);
file = g_file_new_for_path (filename);
g_print ("Writing %s...\n", filename);
- basename_failed = g_strdup_printf ("%s-failed", basename);
+ basename_failed = g_strdup_printf ("%s-failed", priv->origin);
as_store_set_origin (priv->store_failed, basename_failed);
as_store_set_api_version (priv->store_failed, priv->api_version);
if (priv->add_cache_id) {
@@ -1240,10 +1254,7 @@ asb_context_write_xml_fail (AsbContext *ctx,
* asb_context_write_xml_ignore:
**/
static gboolean
-asb_context_write_xml_ignore (AsbContext *ctx,
- const gchar *output_dir,
- const gchar *basename,
- GError **error)
+asb_context_write_xml_ignore (AsbContext *ctx, GError **error)
{
AsbContextPrivate *priv = GET_PRIVATE (ctx);
_cleanup_free_ gchar *basename_cache = NULL;
@@ -1255,11 +1266,12 @@ asb_context_write_xml_ignore (AsbContext *ctx,
return TRUE;
/* the store is already populated */
- filename = g_strdup_printf ("%s/%s-ignore.xml.gz", output_dir, basename);
+ filename = g_strdup_printf ("%s/%s-ignore.xml.gz",
+ priv->output_dir, priv->basename);
file = g_file_new_for_path (filename);
g_print ("Writing %s...\n", filename);
- basename_cache = g_strdup_printf ("%s-ignore", basename);
+ basename_cache = g_strdup_printf ("%s-ignore", priv->origin);
as_store_set_origin (priv->store_ignore, basename_cache);
as_store_set_api_version (priv->store_ignore, priv->api_version);
if (priv->add_cache_id) {
@@ -1440,25 +1452,23 @@ asb_context_process (AsbContext *ctx, AsbContextProcessFlags flags, GError **err
asb_context_write_app_xml (ctx);
/* write XML file */
- ret = asb_context_write_xml (ctx, priv->output_dir, priv->basename, error);
+ ret = asb_context_write_xml (ctx, error);
if (!ret)
return FALSE;
/* write XML file */
- ret = asb_context_write_xml_fail (ctx, priv->output_dir, priv->basename, error);
+ ret = asb_context_write_xml_fail (ctx, error);
if (!ret)
return FALSE;
/* write XML file */
- ret = asb_context_write_xml_ignore (ctx, priv->output_dir, priv->basename, error);
+ ret = asb_context_write_xml_ignore (ctx, error);
if (!ret)
return FALSE;
/* write icons archive */
ret = asb_context_write_icons (ctx,
priv->temp_dir,
- priv->output_dir,
- priv->basename,
error);
if (!ret)
return FALSE;
@@ -1638,6 +1648,7 @@ asb_context_finalize (GObject *object)
g_free (priv->temp_dir);
g_free (priv->output_dir);
g_free (priv->basename);
+ g_free (priv->origin);
G_OBJECT_CLASS (asb_context_parent_class)->finalize (object);
}
diff --git a/libappstream-builder/asb-context.h b/libappstream-builder/asb-context.h
index f4b8370..0a4cd47 100644
--- a/libappstream-builder/asb-context.h
+++ b/libappstream-builder/asb-context.h
@@ -119,6 +119,8 @@ void asb_context_set_output_dir (AsbContext *ctx,
const gchar *output_dir);
void asb_context_set_basename (AsbContext *ctx,
const gchar *basename);
+void asb_context_set_origin (AsbContext *ctx,
+ const gchar *origin);
const gchar *asb_context_get_temp_dir (AsbContext *ctx);
gboolean asb_context_get_add_cache_id (AsbContext *ctx);
gboolean asb_context_get_hidpi_enabled (AsbContext *ctx);
diff --git a/libappstream-builder/asb-self-test.c b/libappstream-builder/asb-self-test.c
index 11862c0..61c76df 100644
--- a/libappstream-builder/asb-self-test.c
+++ b/libappstream-builder/asb-self-test.c
@@ -289,7 +289,8 @@ asb_test_context_test_func (AsbTestContextMode mode)
asb_context_set_add_cache_id (ctx, TRUE);
asb_context_set_no_net (ctx, TRUE);
asb_context_set_hidpi_enabled (ctx, TRUE);
- asb_context_set_basename (ctx, "asb-self-test");
+ asb_context_set_basename (ctx, "appstream");
+ asb_context_set_origin (ctx, "asb-self-test");
asb_context_set_cache_dir (ctx, "/tmp/asbuilder/cache");
asb_context_set_output_dir (ctx, "/tmp/asbuilder/output");
asb_context_set_temp_dir (ctx, "/tmp/asbuilder/temp");
@@ -343,13 +344,13 @@ asb_test_context_test_func (AsbTestContextMode mode)
g_assert (ret);
/* check files created */
- g_assert (g_file_test ("/tmp/asbuilder/output/asb-self-test.xml.gz", G_FILE_TEST_EXISTS));
- g_assert (g_file_test ("/tmp/asbuilder/output/asb-self-test-failed.xml.gz", G_FILE_TEST_EXISTS));
- g_assert (g_file_test ("/tmp/asbuilder/output/asb-self-test-ignore.xml.gz", G_FILE_TEST_EXISTS));
- g_assert (g_file_test ("/tmp/asbuilder/output/asb-self-test-icons.tar.gz", G_FILE_TEST_EXISTS));
+ g_assert (g_file_test ("/tmp/asbuilder/output/appstream.xml.gz", G_FILE_TEST_EXISTS));
+ g_assert (g_file_test ("/tmp/asbuilder/output/appstream-failed.xml.gz", G_FILE_TEST_EXISTS));
+ g_assert (g_file_test ("/tmp/asbuilder/output/appstream-ignore.xml.gz", G_FILE_TEST_EXISTS));
+ g_assert (g_file_test ("/tmp/asbuilder/output/appstream-icons.tar.gz", G_FILE_TEST_EXISTS));
/* load AppStream metadata */
- file = g_file_new_for_path ("/tmp/asbuilder/output/asb-self-test.xml.gz");
+ file = g_file_new_for_path ("/tmp/asbuilder/output/appstream.xml.gz");
store = as_store_new ();
ret = as_store_from_file (store, file, NULL, NULL, &error);
g_assert_no_error (error);
@@ -477,7 +478,7 @@ asb_test_context_test_func (AsbTestContextMode mode)
g_assert (ret);
/* load failed metadata */
- file_failed = g_file_new_for_path ("/tmp/asbuilder/output/asb-self-test-failed.xml.gz");
+ file_failed = g_file_new_for_path ("/tmp/asbuilder/output/appstream-failed.xml.gz");
store_failed = as_store_new ();
ret = as_store_from_file (store_failed, file_failed, NULL, NULL, &error);
g_assert_no_error (error);
@@ -645,7 +646,7 @@ asb_test_context_test_func (AsbTestContextMode mode)
g_assert (ret);
/* load ignored metadata */
- file_ignore = g_file_new_for_path ("/tmp/asbuilder/output/asb-self-test-ignore.xml.gz");
+ file_ignore = g_file_new_for_path ("/tmp/asbuilder/output/appstream-ignore.xml.gz");
store_ignore = as_store_new ();
ret = as_store_from_file (store_ignore, file_ignore, NULL, NULL, &error);
g_assert_no_error (error);
@@ -771,7 +772,8 @@ asb_test_context_extra_appstream_func (void)
asb_context_set_add_cache_id (ctx, TRUE);
asb_context_set_no_net (ctx, TRUE);
asb_context_set_hidpi_enabled (ctx, TRUE);
- asb_context_set_basename (ctx, "asb-self-test");
+ asb_context_set_basename (ctx, "appstream");
+ asb_context_set_origin (ctx, "asb-self-test");
asb_context_set_cache_dir (ctx, "/tmp/asbuilder/cache");
asb_context_set_output_dir (ctx, "/tmp/asbuilder/output");
asb_context_set_temp_dir (ctx, "/tmp/asbuilder/temp");
@@ -785,10 +787,10 @@ asb_test_context_extra_appstream_func (void)
g_assert (ret);
/* check files created */
- g_assert (g_file_test ("/tmp/asbuilder/output/asb-self-test.xml.gz", G_FILE_TEST_EXISTS));
+ g_assert (g_file_test ("/tmp/asbuilder/output/appstream.xml.gz", G_FILE_TEST_EXISTS));
/* load AppStream metadata */
- file = g_file_new_for_path ("/tmp/asbuilder/output/asb-self-test.xml.gz");
+ file = g_file_new_for_path ("/tmp/asbuilder/output/appstream.xml.gz");
store = as_store_new ();
ret = as_store_from_file (store, file, NULL, NULL, &error);
g_assert_no_error (error);