66#include <shell/shell.h>
77
88#include "memfault/core/debug_log.h"
9-
109#include "memfault/nrfconnect_port/fota.h"
10+ #include "memfault/ports/zephyr/http.h"
1111
1212static int prv_mflt_fota (const struct shell * shell , size_t argc , char * * argv ) {
1313#if CONFIG_MEMFAULT_FOTA_CLI_CMD
@@ -23,10 +23,33 @@ static int prv_mflt_fota(const struct shell *shell, size_t argc, char **argv) {
2323#endif
2424}
2525
26+ #if CONFIG_MEMFAULT_HTTP_ENABLE
27+ static int prv_mflt_get_latest_url (const struct shell * shell , size_t argc , char * * argv ) {
28+ char * url = NULL ;
29+ int rv = memfault_zephyr_port_get_download_url (& url );
30+ if (rv <= 0 ) {
31+ MEMFAULT_LOG_ERROR ("Unable to fetch OTA url, rv=%d" , rv );
32+ return rv ;
33+ }
34+
35+ printk ("Download URL: '%s'\n" , url );
36+
37+ rv = memfault_zephyr_port_release_download_url (& url );
38+
39+ return rv ;
40+ }
41+ #endif // CONFIG_MEMFAULT_HTTP_ENABLE
42+
2643SHELL_STATIC_SUBCMD_SET_CREATE (
2744 sub_memfault_nrf_cmds ,
28- SHELL_CMD (fota , NULL , "Perform a FOTA using Memfault client" , prv_mflt_fota ),
45+ SHELL_CMD (fota , NULL , "Perform a FOTA using Memfault client" ,
46+ prv_mflt_fota ),
47+ #if CONFIG_MEMFAULT_HTTP_ENABLE
48+ SHELL_CMD (get_latest_url , NULL , "Get the latest URL for the latest FOTA" ,
49+ prv_mflt_get_latest_url ),
50+ #endif
2951 SHELL_SUBCMD_SET_END /* Array terminated. */
3052);
3153
32- SHELL_CMD_REGISTER (mflt_nrf , & sub_memfault_nrf_cmds , "Memfault nRF Connect SDK Test Commands" , NULL );
54+ SHELL_CMD_REGISTER (mflt_nrf , & sub_memfault_nrf_cmds ,
55+ "Memfault nRF Connect SDK Test Commands" , NULL );
0 commit comments