Added package checking functions #43

Merged
asmeron merged 1 commits from YanTheKaller/libublsettings-gtk3:master into master 5 months ago

@ -82,7 +82,10 @@
}
}
g_key_file_save_to_file(__yon_window_config_file,__yon_window_config_path,NULL);
GError *err = NULL;
if (!g_key_file_save_to_file(__yon_window_config_file,__yon_window_config_path,&err)){
printf("%s\n",err->message);
}
{
struct passwd *user = getpwnam(yon_ubl_root_user_get());
int chown_success = chown(__yon_window_config_path,user->pw_uid,user->pw_gid);

@ -41,6 +41,52 @@
// }
struct packages {
GHashTable *all_list;
GHashTable *installed_list;
} packages_struct;
int yon_packages_init(){
if (getuid()) return 0;
packages_struct.all_list = g_hash_table_new_full(g_str_hash,g_str_equal,free,NULL);
packages_struct.installed_list = g_hash_table_new_full(g_str_hash,g_str_equal,free,NULL);
int size;
int installed_size;
config_str package_list = yon_config_load("pacman -Slq",&size);
config_str installed = yon_config_load("pacman -Qq",&installed_size);
for (int i=0;i<size;i++){
yon_char_remove_last_symbol(package_list[i],'\n');
g_hash_table_add(packages_struct.all_list,package_list[i]);
}
for (int i=0;i<installed_size;i++){
yon_char_remove_last_symbol(package_list[i],'\n');
g_hash_table_add(packages_struct.installed_list,package_list[i]);
}
free(package_list);
free(installed);
if (g_hash_table_size(packages_struct.all_list)&&g_hash_table_size(packages_struct.installed_list))
return 1;
return 0;
}
int yon_packages_check_exist(char *package){
return g_hash_table_contains(packages_struct.all_list,package);
}
int yon_packages_check_installed(char *package){
return g_hash_table_contains(packages_struct.installed_list,package);
}
void yon_packages_finish(){
g_hash_table_unref(packages_struct.all_list);
g_hash_table_unref(packages_struct.installed_list);
}
config_str yon_resource_open_file(const char *path, int *size){
config_str parsed = NULL;
char *modules;

@ -562,4 +562,9 @@ config_str yon_resource_open_file(const char *path, int *size);
void yon_gtk_revealer_set_from_switch(GtkRevealer *revealer, GtkSwitch *target);
void yon_gtk_revealer_set_from_expander(GtkRevealer *revealer, GtkExpander *target);
void yon_gtk_window_set_shrinking_from_revealer_resizing(GtkWindow *window, GtkRevealer *revealer);
void yon_gtk_window_set_shrinking_from_revealer_resizing(GtkWindow *window, GtkRevealer *revealer);
int yon_packages_init();
int yon_packages_check_exist(char *package);
int yon_packages_check_installed(char *package);
void yon_packages_finish();
Loading…
Cancel
Save