trivial: Refactor out functionality to get a user cachedir filename

This commit is contained in:
Richard Hughes 2018-08-30 14:17:42 +01:00
parent fd406616f7
commit 798cb062bf
3 changed files with 19 additions and 7 deletions

View File

@ -127,3 +127,18 @@ fu_util_is_interesting_device (FwupdDevice *dev)
return TRUE; return TRUE;
return FALSE; return FALSE;
} }
gchar *
fu_util_get_user_cache_path (const gchar *fn)
{
g_autofree gchar *basename = g_path_get_basename (fn);
g_autofree gchar *cachedir_legacy = NULL;
/* return the legacy path if it exists rather than renaming it to
* prevent problems when using old and new versions of fwupd */
cachedir_legacy = g_build_filename (g_get_user_cache_dir (), "fwupdmgr", NULL);
if (g_file_test (cachedir_legacy, G_FILE_TEST_IS_DIR))
return g_build_filename (cachedir_legacy, basename, NULL);
return g_build_filename (g_get_user_cache_dir (), "fwupd", basename, NULL);
}

View File

@ -17,5 +17,6 @@ gboolean fu_util_prompt_for_boolean (gboolean def);
gboolean fu_util_print_device_tree (GNode *n, gpointer data); gboolean fu_util_print_device_tree (GNode *n, gpointer data);
gboolean fu_util_is_interesting_device (FwupdDevice *dev); gboolean fu_util_is_interesting_device (FwupdDevice *dev);
gchar *fu_util_get_user_cache_path (const gchar *fn);
#endif /* __FU_UTIL_COMMON_H__ */ #endif /* __FU_UTIL_COMMON_H__ */

View File

@ -1291,7 +1291,6 @@ fu_util_download_metadata_for_remote (FuUtilPrivate *priv,
g_autofree gchar *basename_id_asc = NULL; g_autofree gchar *basename_id_asc = NULL;
g_autofree gchar *basename_id = NULL; g_autofree gchar *basename_id = NULL;
g_autofree gchar *basename = NULL; g_autofree gchar *basename = NULL;
g_autofree gchar *cache_dir = NULL;
g_autofree gchar *filename = NULL; g_autofree gchar *filename = NULL;
g_autofree gchar *filename_asc = NULL; g_autofree gchar *filename_asc = NULL;
g_autoptr(SoupURI) uri = NULL; g_autoptr(SoupURI) uri = NULL;
@ -1302,8 +1301,7 @@ fu_util_download_metadata_for_remote (FuUtilPrivate *priv,
basename_id = g_strdup_printf ("%s-%s", fwupd_remote_get_id (remote), basename); basename_id = g_strdup_printf ("%s-%s", fwupd_remote_get_id (remote), basename);
/* download the metadata */ /* download the metadata */
cache_dir = g_build_filename (g_get_user_cache_dir (), "fwupdmgr", NULL); filename = fu_util_get_user_cache_path (basename_id);
filename = g_build_filename (cache_dir, basename_id, NULL);
if (!fu_common_mkdir_parent (filename, error)) if (!fu_common_mkdir_parent (filename, error))
return FALSE; return FALSE;
uri = soup_uri_new (fwupd_remote_get_metadata_uri (remote)); uri = soup_uri_new (fwupd_remote_get_metadata_uri (remote));
@ -1313,7 +1311,7 @@ fu_util_download_metadata_for_remote (FuUtilPrivate *priv,
/* download the signature */ /* download the signature */
basename_asc = g_path_get_basename (fwupd_remote_get_filename_cache_sig (remote)); basename_asc = g_path_get_basename (fwupd_remote_get_filename_cache_sig (remote));
basename_id_asc = g_strdup_printf ("%s-%s", fwupd_remote_get_id (remote), basename_asc); basename_id_asc = g_strdup_printf ("%s-%s", fwupd_remote_get_id (remote), basename_asc);
filename_asc = g_build_filename (cache_dir, basename_id_asc, NULL); filename_asc = fu_util_get_user_cache_path (basename_id_asc);
uri_sig = soup_uri_new (fwupd_remote_get_metadata_uri_sig (remote)); uri_sig = soup_uri_new (fwupd_remote_get_metadata_uri_sig (remote));
if (!fu_util_download_file (priv, uri_sig, filename_asc, NULL, error)) if (!fu_util_download_file (priv, uri_sig, filename_asc, NULL, error))
return FALSE; return FALSE;
@ -1953,7 +1951,6 @@ fu_util_update_device_with_release (FuUtilPrivate *priv,
GPtrArray *checksums; GPtrArray *checksums;
const gchar *remote_id; const gchar *remote_id;
const gchar *uri_tmp; const gchar *uri_tmp;
g_autofree gchar *basename = NULL;
g_autofree gchar *fn = NULL; g_autofree gchar *fn = NULL;
g_autofree gchar *uri_str = NULL; g_autofree gchar *uri_str = NULL;
g_autoptr(SoupURI) uri = NULL; g_autoptr(SoupURI) uri = NULL;
@ -1993,8 +1990,7 @@ fu_util_update_device_with_release (FuUtilPrivate *priv,
g_print ("Downloading %s for %s...\n", g_print ("Downloading %s for %s...\n",
fwupd_release_get_version (rel), fwupd_release_get_version (rel),
fwupd_device_get_name (dev)); fwupd_device_get_name (dev));
basename = g_path_get_basename (uri_str); fn = fu_util_get_user_cache_path (uri_str);
fn = g_build_filename (g_get_user_cache_dir (), "fwupdmgr", basename, NULL);
if (!fu_common_mkdir_parent (fn, error)) if (!fu_common_mkdir_parent (fn, error))
return FALSE; return FALSE;
checksums = fwupd_release_get_checksums (rel); checksums = fwupd_release_get_checksums (rel);