cmd: add func to extract value from arg

issue #2
This commit is contained in:
tylen 2024-09-25 18:35:18 +00:00 committed by Vasily Davydov
parent bfea75a386
commit 93d0d9ed9d
3 changed files with 12 additions and 3 deletions

View File

@ -13,8 +13,7 @@ static void __attribute__((constructor)) init_cdo(void) {
int main (int argc, char *argv[]) { int main (int argc, char *argv[]) {
struct ArgList* args = parse_args(argc, argv); struct ArgList* args = parse_args(argc, argv);
for (size_t i = 0; i < args->size; i++) { const char* project_path = extract_value_from_arg(args, ARG_PROJECT);
printf("Arg: %s, param: %s\n", args->args[i].name, args->args[i].value); LOG_INFO("Project full path: %s", project_path);
}
return 0; return 0;
} }

View File

@ -133,6 +133,15 @@ void append_arg(struct ArgList* list, struct CommandLineArg* arg) {
list->size += 1; list->size += 1;
} }
const char* extract_value_from_arg(struct ArgList* list, ArgNameId id) {
for (size_t i = 0; i < ARG_COUNT; i++) {
if (list->args[i].id == id) {
return list->args[i].value;
}
}
return NULL;
}
void free_arg_list(struct ArgList* list) { void free_arg_list(struct ArgList* list) {
for (size_t i = 0; i < ARG_COUNT; i++) { for (size_t i = 0; i < ARG_COUNT; i++) {
cdo_free(list->args[i].name); cdo_free(list->args[i].name);

View File

@ -32,6 +32,7 @@ void init_cmd(void);
void exit_cmd(void); void exit_cmd(void);
struct ArgList* create_arg_list(size_t capacity); struct ArgList* create_arg_list(size_t capacity);
void append_arg(struct ArgList* list, struct CommandLineArg* arg); void append_arg(struct ArgList* list, struct CommandLineArg* arg);
const char* extract_value_from_arg(struct ArgList* list, ArgNameId id);
void free_arg_list(struct ArgList* list); void free_arg_list(struct ArgList* list);
void usage(void); void usage(void);
#endif /*__CMD_H__*/ #endif /*__CMD_H__*/