Added --dry-run launch argument

pull/113/head
parent a220aefaaf
commit 9661bca2f8
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -571,25 +571,29 @@ void *on_config_save(void *data){
g_signal_connect(G_OBJECT(widgets->install_info_monitor),"changed",G_CALLBACK(yon_installation_progress_update),widgets);
g_object_unref(file_desc);
gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress));
char *command = yon_debug_output("%s\n",save_config_command(yon_char_parsed_to_string(parameters,size," ")));
yon_char_parsed_free(parameters,size);
yon_debug_output("%s\n","Entered installation");
if (system(yon_debug_output("%s\n",command))){
gdk_threads_add_idle((GSourceFunc)on_install_error,widgets);
if (!main_config.dry_run){
char *command = yon_debug_output("%s\n",save_config_command(yon_char_parsed_to_string(parameters,size," ")));
yon_char_parsed_free(parameters,size);
yon_debug_output("%s\n","Entered installation");
if (system(yon_debug_output("%s\n",command))){
gdk_threads_add_idle((GSourceFunc)on_install_error,widgets);
free(command);
g_mutex_lock(&main_config.install_mutex);
main_config.install_complete=1;
g_mutex_unlock(&main_config.install_mutex);
return 0;
};
free(command);
g_mutex_lock(&main_config.install_mutex);
main_config.install_complete=1;
g_mutex_unlock(&main_config.install_mutex);
return 0;
};
free(command);
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);
on_page_next_clicked(NULL,widgets);
if ((!main_config.save_done)&&main_config.save_configured){
on_setup_system_configuration(widgets);
on_page_next_clicked(NULL,widgets);
}
} else {
yon_launch("ubconfig --source system get /");
}
return 0;
}
@ -674,12 +678,17 @@ void *on_setup_system_configuration(void * data){
}
if (!main_config.dry_run){
char *parameter_string = yon_char_parsed_to_string(all_parameters,size," ");
char *command = set_user_config_command(parameter_string);
if (system(yon_debug_output("%s\n",command))){};
yon_char_parsed_free(all_parameters,size);
free(command);
if (parameter_string) free(parameter_string);
} else {
yon_launch("ubconfig --source system get /");
}
}
g_idle_add((GSourceFunc)on_install_success,widgets);
return NULL;

@ -460,6 +460,8 @@ void config_init(){
main_config.config_load_path = NULL;
main_config.config_save_path = NULL;
yon_packages_init();
main_config.dry_run=0;
main_config.force_ini=NULL;
main_config.network_types = g_hash_table_new(g_str_hash,g_str_equal);
main_config.cur_slide=0;
}
@ -1165,8 +1167,36 @@ int main(int argc, char *argv[]){
config_init();
config_str unfound = NULL;
int size=0;
yon_ubl_connect_config((_template_config*)&main_config);
yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL);
yon_ubl_connect_config((_template_config*)&main_config);
opterr=0;
yon_ubl_window_init(TITLE_LABEL,"",LocaleName,CssPath,LocaleName,version_application,WIKI_LINK);
yon_ubl_setup_arguments(argc,argv,&unfound,&size,ADDITIONAL_ARGS);
if (size) {
int option_index = 0;
struct option long_options[] = {
{"dry-run", 0, 0, 'D'},
{"ini", 0, 0, 'I'},
{NULL, 0, NULL, 0}
};
// Сбрасываем optind для повторного прохода
optind = 1;
// Перебор необработанных аргументов
for (int i = 0; i < size; i++) {
int argument = getopt_long(argc, argv, "DI:", long_options, &option_index);
switch (argument) {
case 'D':
main_config.dry_run = 1;
break;
case 'I':
main_config.force_ini = yon_char_new(optarg);
break;
default:
break;
}
}
}
gtk_init(&argc,&argv);
main_window *widgets = NULL;
widgets = yon_main_window_complete();

@ -398,6 +398,8 @@ typedef struct {
char *config_load_path;
char *config_save_path;
unsigned int cur_slide;
gboolean dry_run;
char *force_ini;
} config;
extern config main_config;

@ -6,6 +6,11 @@
#define OPEN_LABEL _("Open")
#define ADDITIONAL_ARGS yon_char_unite(\
" --dry-run ",_("Dry run; Installation will not start"),"\n",\
" --ini <PATH> ", _("Set ini file for configuration mode"),\
NULL)
#define KEYBOARD_TITLE_LABEL _("Keyboard layout")
#define CUSTOM_CONFIG_CREATION_ERROR_LABEL _("New configuration file creation failed")

Loading…
Cancel
Save