|
|
|
@ -156,6 +156,43 @@ enum INSTALL_TYPE yon_ubl_get_install_mode(){
|
|
|
|
return INSTALL_ERROR;
|
|
|
|
return INSTALL_ERROR;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_config_install_success(GtkWidget *self, int state, main_window *widgets){
|
|
|
|
|
|
|
|
if (state){
|
|
|
|
|
|
|
|
gdk_threads_add_idle((GSourceFunc)on_install_error,widgets);
|
|
|
|
|
|
|
|
g_mutex_lock(&main_config.install_mutex);
|
|
|
|
|
|
|
|
main_config.install_complete=1;
|
|
|
|
|
|
|
|
g_mutex_unlock(&main_config.install_mutex);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
g_mutex_lock(&main_config.install_mutex);
|
|
|
|
|
|
|
|
main_config.install_complete=1;
|
|
|
|
|
|
|
|
g_mutex_unlock(&main_config.install_mutex);
|
|
|
|
|
|
|
|
if ((!main_config.save_done)&&main_config.save_configured){
|
|
|
|
|
|
|
|
on_setup_system_configuration(widgets);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
gtk_widget_destroy(self);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_config_terminal_save(main_window *widgets){
|
|
|
|
|
|
|
|
g_idle_add((GSourceFunc)yon_progress_bar_start,widgets);
|
|
|
|
|
|
|
|
if (!main_config.dry_run){
|
|
|
|
|
|
|
|
char *command = yon_debug_output("%s\n",save_config_command);
|
|
|
|
|
|
|
|
yon_debug_output("%s\n","Entered installation");
|
|
|
|
|
|
|
|
GtkWidget *terminal = vte_terminal_new();
|
|
|
|
|
|
|
|
yon_window *window = yon_window_new();
|
|
|
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(window->MainBox),terminal,1,1,0);
|
|
|
|
|
|
|
|
gtk_widget_show(window->Window);
|
|
|
|
|
|
|
|
gtk_widget_show(terminal);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(terminal),"child-exited",G_CALLBACK(on_config_install_success),widgets);
|
|
|
|
|
|
|
|
yon_terminal_integrated_start(terminal,command);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
yon_launch("ubconfig --source system get /");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void *on_config_save(void *data){
|
|
|
|
void *on_config_save(void *data){
|
|
|
|
main_window *widgets = (main_window*)data;
|
|
|
|
main_window *widgets = (main_window*)data;
|
|
|
|
|
|
|
|
|
|
|
|
@ -190,97 +227,16 @@ void *on_setup_system_configuration(void * data){
|
|
|
|
yon_debug_output("%s\n","Entered thread");
|
|
|
|
yon_debug_output("%s\n","Entered thread");
|
|
|
|
main_window *widgets = (main_window*)data;
|
|
|
|
main_window *widgets = (main_window*)data;
|
|
|
|
if (widgets){};
|
|
|
|
if (widgets){};
|
|
|
|
int size;
|
|
|
|
|
|
|
|
config_str all_parameters = yon_config_get_selection_by_key(&size,
|
|
|
|
|
|
|
|
root_password_parameter,
|
|
|
|
|
|
|
|
autologin_parameter,
|
|
|
|
|
|
|
|
xkbmodel_parameter,
|
|
|
|
|
|
|
|
xkblayout_parameter,
|
|
|
|
|
|
|
|
xkbvariant_parameter,
|
|
|
|
|
|
|
|
xkboptions_parameter,
|
|
|
|
|
|
|
|
hostname_parameter,
|
|
|
|
|
|
|
|
zone_parameter,
|
|
|
|
|
|
|
|
lang_parameter,
|
|
|
|
|
|
|
|
locale_parameter,
|
|
|
|
|
|
|
|
SERVICES_ENABLE_parameter,
|
|
|
|
|
|
|
|
GRUB_DEFAULT_parameter,
|
|
|
|
|
|
|
|
GRUB_TIMEOUT_parameter,
|
|
|
|
|
|
|
|
AUTOLOGINUSER_parameter,
|
|
|
|
|
|
|
|
GRUB_SUPERUSERS_parameter,
|
|
|
|
|
|
|
|
DOMAIN_parameter,
|
|
|
|
|
|
|
|
DOMAIN_admanger_parameter,
|
|
|
|
|
|
|
|
NTPSERVERS_parameter,
|
|
|
|
|
|
|
|
packages_parameter,
|
|
|
|
|
|
|
|
KERNEL_BOOT_parameter,
|
|
|
|
|
|
|
|
packages_parameter,
|
|
|
|
|
|
|
|
NULL);
|
|
|
|
|
|
|
|
int user_size=0;
|
|
|
|
|
|
|
|
config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&user_size);
|
|
|
|
|
|
|
|
if (user_size){
|
|
|
|
|
|
|
|
int final_size;
|
|
|
|
|
|
|
|
config_str final = yon_char_parsed_merge(all_parameters,size,users,user_size,&final_size);
|
|
|
|
|
|
|
|
// yon_char_parsed_free(users,user_size);
|
|
|
|
|
|
|
|
if (size) yon_char_parsed_free(all_parameters,size);
|
|
|
|
|
|
|
|
all_parameters = final;
|
|
|
|
|
|
|
|
size = final_size;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
users = yon_config_get_all_by_key(GRUB_PASSWORD_parameter_search,&user_size);
|
|
|
|
|
|
|
|
if (users){
|
|
|
|
|
|
|
|
int final_size;
|
|
|
|
|
|
|
|
config_str final = yon_char_parsed_merge(all_parameters,size,users,user_size,&final_size);
|
|
|
|
|
|
|
|
// yon_char_parsed_free(users,user_size);
|
|
|
|
|
|
|
|
if (size) yon_char_parsed_free(all_parameters,size);
|
|
|
|
|
|
|
|
all_parameters = final;
|
|
|
|
|
|
|
|
size = final_size;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int network_size;
|
|
|
|
|
|
|
|
config_str networks = yon_config_get_all_by_key(NETWORK_parameter_search,&network_size);
|
|
|
|
|
|
|
|
if (network_size){
|
|
|
|
|
|
|
|
int final_size;
|
|
|
|
|
|
|
|
config_str final = yon_char_parsed_merge(all_parameters,size,networks,network_size,&final_size);
|
|
|
|
|
|
|
|
// yon_char_parsed_free(networks,network_size);
|
|
|
|
|
|
|
|
if (size) yon_char_parsed_free(all_parameters,size);
|
|
|
|
|
|
|
|
all_parameters = final;
|
|
|
|
|
|
|
|
size = final_size;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (all_parameters){
|
|
|
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
|
|
|
char *parameter = yon_char_divide_search(all_parameters[i],"=",-1);
|
|
|
|
|
|
|
|
if (!strstr(parameter,"'")){
|
|
|
|
|
|
|
|
char *key = yon_config_parameter_get_key(parameter);
|
|
|
|
|
|
|
|
free(parameter);
|
|
|
|
|
|
|
|
char *tmp = yon_char_unite("'",key,"'",NULL);
|
|
|
|
|
|
|
|
free(key);
|
|
|
|
|
|
|
|
parameter = AUTOINSTALL(tmp);
|
|
|
|
|
|
|
|
free(tmp);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!strstr(all_parameters[i],"'")){
|
|
|
|
|
|
|
|
char *temp = yon_char_unite("'",all_parameters[i],"'",NULL);
|
|
|
|
|
|
|
|
free(all_parameters[i]);
|
|
|
|
|
|
|
|
all_parameters[i]=temp;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
char *temp = yon_char_unite(parameter,"=",all_parameters[i],NULL);
|
|
|
|
|
|
|
|
free(all_parameters[i]);
|
|
|
|
|
|
|
|
all_parameters[i]=temp;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!main_config.dry_run){
|
|
|
|
if (!main_config.dry_run){
|
|
|
|
char *parameter_string = yon_char_parsed_to_string(all_parameters,size," ");
|
|
|
|
|
|
|
|
char *command = set_user_config_command;
|
|
|
|
char *command = set_user_config_command;
|
|
|
|
// if (main_config.debug_mode){
|
|
|
|
|
|
|
|
// yon_launch(ubinstall_dry_run_command);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
if (system(yon_debug_output("%s\n",command))){};
|
|
|
|
if (system(yon_debug_output("%s\n",command))){};
|
|
|
|
yon_char_parsed_free(all_parameters,size);
|
|
|
|
|
|
|
|
free(command);
|
|
|
|
free(command);
|
|
|
|
if (parameter_string) free(parameter_string);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
yon_launch("ubconfig --source system get /");
|
|
|
|
yon_launch("ubconfig --source system get /");
|
|
|
|
|
|
|
|
yon_launch(ubinstall_dry_run_command);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
g_idle_add((GSourceFunc)on_install_success,widgets);
|
|
|
|
g_idle_add((GSourceFunc)on_install_success,widgets);
|
|
|
|
return NULL;
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|