diff --git a/sys/include/suit/coap.h b/sys/include/suit/coap.h index f909a61eb5..4c1ebbe929 100644 --- a/sys/include/suit/coap.h +++ b/sys/include/suit/coap.h @@ -144,17 +144,12 @@ int suit_coap_get_blockwise_url(const char *url, coap_blockwise_cb_t callback, void *arg); /** - * @brief Set the url used to fetch the SUIT manifest + * @brief Trigger a SUIT udate * * @param[in] url url pointer containing the full coap url to the manifest * @param[in] len length of the url */ -void suit_coap_set_url(const uint8_t *url, size_t len); - -/** - * @brief Trigger a SUIT udate - */ -void suit_coap_trigger(void); +void suit_coap_trigger(const uint8_t *url, size_t len); #endif /* DOXYGEN */ diff --git a/sys/shell/commands/Makefile b/sys/shell/commands/Makefile index 6c03471bab..3f4cabc26b 100644 --- a/sys/shell/commands/Makefile +++ b/sys/shell/commands/Makefile @@ -99,4 +99,8 @@ ifneq (,$(filter test_utils_interactive_sync,$(USEMODULE))) SRC += sc_interactive_sync.c endif +ifneq (,$(filter suit_coap,$(USEMODULE))) + SRC += sc_suit.c +endif + include $(RIOTBASE)/Makefile.base diff --git a/sys/shell/commands/sc_suit.c b/sys/shell/commands/sc_suit.c new file mode 100644 index 0000000000..29ae844e03 --- /dev/null +++ b/sys/shell/commands/sc_suit.c @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2019 Alexandre Abadie + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @ingroup sys_shell_commands + * @{ + * + * @file + * @brief Trigger a firmware update from the shell + * + * @author Alexandre Abadie + * + * @} + */ + +#include +#include +#include + +#include "suit/coap.h" + + +int _suit_handler(int argc, char **argv) +{ + if (argc != 2) { + printf("Usage: %s \n", argv[0]); + return 1; + } + + suit_coap_trigger((uint8_t *)argv[1], strlen(argv[1])); + + return 0; +} diff --git a/sys/shell/commands/shell_commands.c b/sys/shell/commands/shell_commands.c index e111ce9bb1..38717d3eae 100644 --- a/sys/shell/commands/shell_commands.c +++ b/sys/shell/commands/shell_commands.c @@ -168,6 +168,10 @@ extern int _test_start(int argc, char **argv); extern int _test_ready(int argc, char **argv); #endif +#ifdef MODULE_SUIT_COAP +extern int _suit_handler(int argc, char **argv); +#endif + const shell_command_t _shell_command_list[] = { {"reboot", "Reboot the node", _reboot_handler}, #ifdef MODULE_CONFIG @@ -276,6 +280,9 @@ const shell_command_t _shell_command_list[] = { #ifdef MODULE_TEST_UTILS_INTERACTIVE_SYNC { "r", "Test sync, Ready query", _test_ready }, { "s", "Test sync, Start test trigger", _test_start }, +#endif +#ifdef MODULE_SUIT_COAP + { "suit", "Trigger a SUIT firmware update", _suit_handler }, #endif {NULL, NULL, NULL} };