6
6
#include <shell/shell.h>
7
7
8
8
#include "memfault/core/debug_log.h"
9
-
10
9
#include "memfault/nrfconnect_port/fota.h"
10
+ #include "memfault/ports/zephyr/http.h"
11
11
12
12
static int prv_mflt_fota (const struct shell * shell , size_t argc , char * * argv ) {
13
13
#if CONFIG_MEMFAULT_FOTA_CLI_CMD
@@ -23,10 +23,33 @@ static int prv_mflt_fota(const struct shell *shell, size_t argc, char **argv) {
23
23
#endif
24
24
}
25
25
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
+
26
43
SHELL_STATIC_SUBCMD_SET_CREATE (
27
44
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
29
51
SHELL_SUBCMD_SET_END /* Array terminated. */
30
52
);
31
53
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