|
|
|
@ -339,9 +339,20 @@ char *yon_config_command_get_full(config_str command, int command_size){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (final_size>0){
|
|
|
|
if (final_size>0){
|
|
|
|
char *final_command = yon_char_parsed_to_string(final,final_size," -- get ");
|
|
|
|
char *final_command = yon_char_parsed_to_string(final,final_size," -- get ");
|
|
|
|
char *temp = yon_char_replace(final_command,"ubconfig","ubconfig -ea");
|
|
|
|
int pos = yon_char_check_element(final_command,"ubconfig", " ");
|
|
|
|
|
|
|
|
if (pos&&yon_char_check_element(final_command,"-ea"," ")==0){
|
|
|
|
|
|
|
|
int size=0;
|
|
|
|
|
|
|
|
config_str parsed = yon_char_parse(final_command,&size," ");
|
|
|
|
|
|
|
|
pos = yon_char_parsed_check_exist(parsed,size,"ubconfig");
|
|
|
|
|
|
|
|
char *tmp = yon_char_unite(parsed[pos]," -ea",NULL);
|
|
|
|
|
|
|
|
free(parsed[pos]);
|
|
|
|
|
|
|
|
parsed[pos] = tmp;
|
|
|
|
free(final_command);
|
|
|
|
free(final_command);
|
|
|
|
final_command = temp;
|
|
|
|
final_command = yon_char_parsed_to_string(parsed,size," ");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// char *temp = yon_char_replace(final_command,"ubconfig","ubconfig -ea");
|
|
|
|
|
|
|
|
// free(final_command);
|
|
|
|
|
|
|
|
// final_command = temp;
|
|
|
|
yon_char_parsed_free(final,final_size);
|
|
|
|
yon_char_parsed_free(final,final_size);
|
|
|
|
return final_command;
|
|
|
|
return final_command;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1191,13 +1202,17 @@ config_str yon_config_get_load_parameters_by_list(int *size, config_str paramete
|
|
|
|
if (!strcmp(temp->key,current_str)){
|
|
|
|
if (!strcmp(temp->key,current_str)){
|
|
|
|
int position = yon_char_parsed_find_element(final,*size,((yon_config_parameter*)temp)->section);
|
|
|
|
int position = yon_char_parsed_find_element(final,*size,((yon_config_parameter*)temp)->section);
|
|
|
|
if (position>=0){
|
|
|
|
if (position>=0){
|
|
|
|
char *string = yon_char_unite((final)[position]," ",current_str,NULL);
|
|
|
|
char *quoted = yon_config_parameter_set_quotes(current_str);
|
|
|
|
|
|
|
|
char *string = yon_char_unite((final)[position]," ",quoted,NULL);
|
|
|
|
free((final)[position]);
|
|
|
|
free((final)[position]);
|
|
|
|
(final)[position]=string;
|
|
|
|
(final)[position]=string;
|
|
|
|
|
|
|
|
free(quoted);
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
char *string = yon_char_unite(temp->section," ",current_str,NULL);
|
|
|
|
char *quoted = yon_config_parameter_set_quotes(current_str);
|
|
|
|
|
|
|
|
char *string = yon_char_unite(temp->section," ",quoted,NULL);
|
|
|
|
yon_char_parsed_add_or_create_if_exists(final,size,string);
|
|
|
|
yon_char_parsed_add_or_create_if_exists(final,size,string);
|
|
|
|
|
|
|
|
free(quoted);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1414,8 +1429,9 @@ int yon_config_save_list_simple(config_str parameters_keys, size_t size, char *p
|
|
|
|
int parameters_size=0;
|
|
|
|
int parameters_size=0;
|
|
|
|
config_str parameters = yon_config_get_save_parameters_by_list(¶meters_size,parameters_keys,size);
|
|
|
|
config_str parameters = yon_config_get_save_parameters_by_list(¶meters_size,parameters_keys,size);
|
|
|
|
if (parameters&¶meters_size){
|
|
|
|
if (parameters&¶meters_size){
|
|
|
|
char *command_parameters = yon_char_parsed_to_string(parameters,parameters_size,";");
|
|
|
|
char *command_parameters = yon_char_parsed_to_string(parameters,parameters_size," -- ");
|
|
|
|
char *command = yon_char_unite(ubconfig_dull_command,"--target ",path," ", command_parameters,NULL);
|
|
|
|
char *command = yon_char_unite(ubconfig_dull_command,"--target ",path," ", command_parameters,NULL);
|
|
|
|
|
|
|
|
printf("%s\n",command);
|
|
|
|
return !!system(command);
|
|
|
|
return !!system(command);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1438,7 +1454,7 @@ int yon_config_save_args_simple(char *path, ...){
|
|
|
|
config_str parameters = yon_config_get_save_parameters_by_list(¶meters_size,params,size);
|
|
|
|
config_str parameters = yon_config_get_save_parameters_by_list(¶meters_size,params,size);
|
|
|
|
yon_char_parsed_free(params,size);
|
|
|
|
yon_char_parsed_free(params,size);
|
|
|
|
if (parameters&¶meters_size){
|
|
|
|
if (parameters&¶meters_size){
|
|
|
|
char *command_parameters = yon_char_parsed_to_string(parameters,parameters_size,";");
|
|
|
|
char *command_parameters = yon_char_parsed_to_string(parameters,parameters_size," -- ");
|
|
|
|
char *command = yon_char_unite(ubconfig_dull_command,"--target ",path," ", command_parameters,NULL);
|
|
|
|
char *command = yon_char_unite(ubconfig_dull_command,"--target ",path," ", command_parameters,NULL);
|
|
|
|
return !!system(command);
|
|
|
|
return !!system(command);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1446,6 +1462,66 @@ int yon_config_save_args_simple(char *path, ...){
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int yon_config_update_by_key(char *key){
|
|
|
|
|
|
|
|
if (yon_char_is_empty(key)) return 0;
|
|
|
|
|
|
|
|
check_config{
|
|
|
|
|
|
|
|
dictionary *current = yon_dictionary_get((dictionary**)&__yon__config__strings,key);
|
|
|
|
|
|
|
|
if (!current) return 0;
|
|
|
|
|
|
|
|
if (current->data) free(current->data);
|
|
|
|
|
|
|
|
current->data = NULL;
|
|
|
|
|
|
|
|
int size=0;
|
|
|
|
|
|
|
|
char *command = yon_config_parameter_get_load_command(key);
|
|
|
|
|
|
|
|
config_str new_param = yon_config_load(command,&size);
|
|
|
|
|
|
|
|
if (size&&!yon_char_is_empty(new_param[0])&&strcmp(new_param[0],"(null)\n")){
|
|
|
|
|
|
|
|
yon_char_remove_last_symbol(new_param[0],'\n');
|
|
|
|
|
|
|
|
current->data = yon_char_new(new_param[0]);
|
|
|
|
|
|
|
|
((yon_config_parameter*)current)->flag1=0;
|
|
|
|
|
|
|
|
yon_config_set_status(key,0);
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int yon_config_update_by_list(config_str keys, size_t size){
|
|
|
|
|
|
|
|
if (!size||!keys) return 0;
|
|
|
|
|
|
|
|
check_config{
|
|
|
|
|
|
|
|
int params_size=0;
|
|
|
|
|
|
|
|
config_str parameters = yon_config_get_load_parameters_by_list(¶ms_size,keys,size);
|
|
|
|
|
|
|
|
if (params_size&¶meters){
|
|
|
|
|
|
|
|
char *path = yon_config_command_get_path(config_last_load_command);
|
|
|
|
|
|
|
|
char *parameters_str = yon_char_parsed_to_string(parameters,params_size," ");
|
|
|
|
|
|
|
|
char *command = yon_char_unite(ubconfig_load_command(path), parameters_str, NULL);
|
|
|
|
|
|
|
|
yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int yon_config_update_by_args(char *key, ...){
|
|
|
|
|
|
|
|
check_config{
|
|
|
|
|
|
|
|
int size=0;
|
|
|
|
|
|
|
|
config_str keys = NULL;
|
|
|
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(keys,&size,key);
|
|
|
|
|
|
|
|
va_list args;
|
|
|
|
|
|
|
|
va_start(args,key);
|
|
|
|
|
|
|
|
char *cur_key = NULL;
|
|
|
|
|
|
|
|
while((cur_key = va_arg(args,char*))){
|
|
|
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(keys,&size,cur_key);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int params_size=0;
|
|
|
|
|
|
|
|
config_str parameters = yon_config_get_load_parameters_by_list(¶ms_size,keys,size);
|
|
|
|
|
|
|
|
if (params_size&¶meters){
|
|
|
|
|
|
|
|
char *path = yon_config_command_get_path(config_last_load_command);
|
|
|
|
|
|
|
|
char *parameters_str = yon_char_parsed_to_string(parameters,params_size," -- get ");
|
|
|
|
|
|
|
|
char *command = yon_char_unite(ubconfig_load_command(path), parameters_str, NULL);
|
|
|
|
|
|
|
|
yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
char *yon_config_parameter_prepare_command(char *command, char *path, char *section, char *parameter){
|
|
|
|
char *yon_config_parameter_prepare_command(char *command, char *path, char *section, char *parameter){
|
|
|
|
if (!yon_char_is_empty(command)){
|
|
|
|
if (!yon_char_is_empty(command)){
|
|
|
|
int size=0;
|
|
|
|
int size=0;
|
|
|
|
|