|
|
|
|
@ -1,6 +1,65 @@
|
|
|
|
|
#include "ubinstall-gtk.h"
|
|
|
|
|
|
|
|
|
|
int yon_installation_check_packages_size(main_window *widgets){
|
|
|
|
|
char *packages = config(packages_parameter);
|
|
|
|
|
char *modules = config(modules_parameter);
|
|
|
|
|
char *install_mode = config(AUTOINSTALL_TYPE_INSTALL);
|
|
|
|
|
long part_size = 0;
|
|
|
|
|
|
|
|
|
|
if (strcmp(install_mode,"fast")){
|
|
|
|
|
char *part = config(part_parameter);
|
|
|
|
|
for (int i=0;i<main_config.part_size;i++){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(main_config.partitions[i],&parsed_size,";");
|
|
|
|
|
if (!strcmp(parsed[0],part)&&parsed_size>3&&!yon_char_is_empty(parsed[3])){
|
|
|
|
|
part_size = atol(parsed[3]);
|
|
|
|
|
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
char *device = config(AUTOINSTALL_DEVICE);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
for_iter(widgets->DevicesList,&iter){
|
|
|
|
|
char *target;
|
|
|
|
|
long disk_size;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->DevicesList),&iter,0,&target,7,&disk_size,-1);
|
|
|
|
|
if (!strcmp(device,target)){
|
|
|
|
|
part_size = disk_size;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
long packages_size = 0;
|
|
|
|
|
long modules_size = 0;
|
|
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(packages)){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(packages,&parsed_size,",");
|
|
|
|
|
for (int i=0;i<parsed_size;i++){
|
|
|
|
|
packages_size += yon_packages_get_installed_size(YON_PACKAGES_ALL,parsed[i]);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(modules)){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(packages,&parsed_size,",");
|
|
|
|
|
for (int i=0;i<parsed_size;i++){
|
|
|
|
|
modules_size += yon_packages_get_installed_size(YON_PACKAGES_ALL,parsed[i]);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
|
}
|
|
|
|
|
long overall_size = packages_size + modules_size;
|
|
|
|
|
if (overall_size>part_size){
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NOT_ENOUGH_SPACE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int yon_configuration_hub_save(main_window *widgets){
|
|
|
|
|
if (!yon_installation_check_packages_size(widgets)) return 0;
|
|
|
|
|
char *finish_button = (char *)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ConfigHubRebootCombo));
|
|
|
|
|
if (!yon_char_is_empty(finish_button)){
|
|
|
|
|
yon_config_register(finish_parameter,finish_parameter_command,finish_button);
|
|
|
|
|
|