TEST fix for install

pull/385/head
parent 3a1d764f43
commit 1acd759baa

@ -2,7 +2,9 @@
int yon_installation_start(main_window *widgets){ int yon_installation_start(main_window *widgets){
gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress)); gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress));
return !pthread_create(&main_config.install_thread,NULL,on_config_save,widgets); // return !pthread_create(&main_config.install_thread,NULL,on_config_save,widgets);
on_config_terminal_save(widgets);
return 1;
} }
void yon_quick_install(GtkWidget *self, main_window *widgets){ void yon_quick_install(GtkWidget *self, main_window *widgets){

@ -8,13 +8,23 @@ enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){
case YON_PAGE_WELCOME: return YON_PAGE_LICENCE; break; case YON_PAGE_WELCOME: return YON_PAGE_LICENCE; break;
case YON_PAGE_LICENCE: return YON_PAGE_SECTIONS; break; case YON_PAGE_LICENCE: return YON_PAGE_SECTIONS; break;
case YON_PAGE_SECTIONS: return yon_sections_get_next_page(widgets); break; case YON_PAGE_SECTIONS: return yon_sections_get_next_page(widgets); break;
case YON_PAGE_OS_COMPONENTS: return main_config.configure_mode?YON_PAGE_CONFIG_HUB: strcmp(config(AUTOINSTALL_TYPE_INSTALL),"system_only") ? YON_PAGE_INSTALLATION_BEGIN : YON_PAGE_RECOVERY_BEGIN; break; case YON_PAGE_OS_COMPONENTS: {
char *install_mode = config(AUTOINSTALL_TYPE_INSTALL);
if (main_config.configure_mode&&strcmp(install_mode,"system_only")&&strcmp(install_mode,"grub_install")&&strcmp(install_mode,"grub_update")){
return YON_PAGE_CONFIG_HUB;
} else if (strcmp(install_mode,"system_only")){
return YON_PAGE_INSTALLATION_BEGIN;
} else {
return YON_PAGE_RECOVERY_BEGIN;
}
}
case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_CONFIG_HUB; break; case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_CONFIG_HUB; break;
case YON_PAGE_SOFTWARE: return YON_PAGE_CONFIG_HUB; break; case YON_PAGE_SOFTWARE: return YON_PAGE_CONFIG_HUB; break;
case YON_PAGE_CONFIG_HUB: { case YON_PAGE_CONFIG_HUB: {
char *install_mode = config(AUTOINSTALL_TYPE_INSTALL);
if (main_config.configure_mode){ if (main_config.configure_mode){
return YON_PAGE_CONFIGURE_END; return YON_PAGE_CONFIGURE_END;
} else if (strcmp(config(AUTOINSTALL_TYPE_INSTALL),"data_only")){ } else if (strcmp(install_mode,"data_only")){
return YON_PAGE_INSTALLATION; return YON_PAGE_INSTALLATION;
} else { } else {
return YON_PAGE_RECOVERY_BEGIN; return YON_PAGE_RECOVERY_BEGIN;
@ -37,10 +47,10 @@ enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){
case YON_PAGE_INSTALL_SAME_PARTITION: return YON_PAGE_OS_COMPONENTS; break; case YON_PAGE_INSTALL_SAME_PARTITION: return YON_PAGE_OS_COMPONENTS; break;
case YON_PAGE_INSTALL_ADVANCED: return YON_PAGE_OS_COMPONENTS; break; case YON_PAGE_INSTALL_ADVANCED: return YON_PAGE_OS_COMPONENTS; break;
case YON_PAGE_INSTALL_RECOVERY: return yon_recovery_get_next(widgets); break; case YON_PAGE_INSTALL_RECOVERY: return yon_recovery_get_next(widgets); break;
case YON_PAGE_RECOVERY_GRUB_INSTALL: return main_config.configure_mode?YON_PAGE_CONFIGURE_END:YON_PAGE_CONFIG_HUB; break; case YON_PAGE_RECOVERY_GRUB_INSTALL: return YON_PAGE_CONFIG_HUB; break;
case YON_PAGE_RECOVERY_GRUB_UPDATE: return main_config.configure_mode?YON_PAGE_CONFIGURE_END:YON_PAGE_CONFIG_HUB; break; case YON_PAGE_RECOVERY_GRUB_UPDATE: return YON_PAGE_CONFIG_HUB; break;
case YON_PAGE_RECOVERY_OS_ONLY: return main_config.configure_mode?YON_PAGE_CONFIGURE_END:YON_PAGE_OS_COMPONENTS; break; case YON_PAGE_RECOVERY_OS_ONLY: return YON_PAGE_OS_COMPONENTS; break;
case YON_PAGE_RECOVERY_USRDATA_ONLY: return main_config.configure_mode?YON_PAGE_CONFIGURE_END:YON_PAGE_CONFIG_HUB; break; case YON_PAGE_RECOVERY_USRDATA_ONLY: return YON_PAGE_CONFIG_HUB; break;
case YON_PAGE_RECOVERY_BEGIN: main_config.save_configured = 1; return YON_PAGE_RECOVERY_PROCESS; break; case YON_PAGE_RECOVERY_BEGIN: main_config.save_configured = 1; return YON_PAGE_RECOVERY_PROCESS; break;
case YON_PAGE_RECOVERY_PROCESS: return YON_PAGE_RECOVERY_COMPLETION; break; case YON_PAGE_RECOVERY_PROCESS: return YON_PAGE_RECOVERY_COMPLETION; break;
case YON_PAGE_INSTALLATION: return YON_PAGE_COMPLETION; break; case YON_PAGE_INSTALLATION: return YON_PAGE_COMPLETION; break;

@ -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;
} }

@ -13,6 +13,7 @@
#include <libublsettings.h> #include <libublsettings.h>
#include <libublsettings-gtk3.h> #include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h> #include <libublsettingsui-gtk3.h>
// #define VTE_INCLUDE
#ifdef WEBKIT_INCLUDE #ifdef WEBKIT_INCLUDE
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
#endif #endif
@ -1640,4 +1641,6 @@ void yon_status_thread_update_inactive(main_window *widgets);
void yon_status_thread_update_active(main_window *widgets); void yon_status_thread_update_active(main_window *widgets);
void *yon_status_thread_update(main_window *widgets); void *yon_status_thread_update(main_window *widgets);
void yon_db_lock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets); void yon_db_lock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets);
void yon_db_unlock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets); void yon_db_unlock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets);
void on_config_install_success(GtkWidget *self, int state, main_window *widgets);
void on_config_terminal_save(main_window *widgets);
Loading…
Cancel
Save