|
|
|
@ -66,13 +66,13 @@ int yon_packages_init(){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (int i=0;i<installed_size;i++){
|
|
|
|
for (int i=0;i<installed_size;i++){
|
|
|
|
yon_char_remove_last_symbol(package_list[i],'\n');
|
|
|
|
yon_char_remove_last_symbol(installed[i],'\n');
|
|
|
|
g_hash_table_add(packages_struct.installed_list,installed[i]);
|
|
|
|
g_hash_table_add(packages_struct.installed_list,installed[i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (int i=0;i<updates_size;i++){
|
|
|
|
for (int i=0;i<updates_size;i++){
|
|
|
|
yon_char_remove_last_symbol(package_list[i],'\n');
|
|
|
|
yon_char_remove_last_symbol(updates[i],'\n');
|
|
|
|
g_hash_table_add(packages_struct.installed_list,updates[i]);
|
|
|
|
g_hash_table_add(packages_struct.updates_list,updates[i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
free(package_list);
|
|
|
|
free(package_list);
|
|
|
|
free(installed);
|
|
|
|
free(installed);
|
|
|
|
@ -84,6 +84,11 @@ int yon_packages_init(){
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define install_package_command(target) yon_char_unite("pacman -S ",target,NULL)
|
|
|
|
|
|
|
|
#define remove_package_command(target) yon_char_unite("pacman -R ",target,NULL)
|
|
|
|
|
|
|
|
#define update_package_installed_command(target) yon_char_append("pacman -Qq",target)
|
|
|
|
|
|
|
|
#define update_package_updated_command(target) yon_char_append("pacman -Qqu",target)
|
|
|
|
|
|
|
|
|
|
|
|
int yon_packages_check_exist(char *package){
|
|
|
|
int yon_packages_check_exist(char *package){
|
|
|
|
return g_hash_table_contains(packages_struct.all_list,package);
|
|
|
|
return g_hash_table_contains(packages_struct.all_list,package);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -96,6 +101,48 @@ int yon_packages_check_updates(char *package){
|
|
|
|
return g_hash_table_contains(packages_struct.updates_list,package);
|
|
|
|
return g_hash_table_contains(packages_struct.updates_list,package);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void yon_packages_update_package(char *package){
|
|
|
|
|
|
|
|
char *command = update_package_installed_command(package);
|
|
|
|
|
|
|
|
if (!system(command)){
|
|
|
|
|
|
|
|
if (!g_hash_table_contains(packages_struct.installed_list,package)){
|
|
|
|
|
|
|
|
g_hash_table_add(packages_struct.installed_list,yon_char_new(package));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
if (g_hash_table_contains(packages_struct.installed_list,package)){
|
|
|
|
|
|
|
|
g_hash_table_remove(packages_struct.installed_list,package);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
free(command);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
command = update_package_updated_command(package);
|
|
|
|
|
|
|
|
if (!system(command)){
|
|
|
|
|
|
|
|
if (!g_hash_table_contains(packages_struct.updates_list,package)){
|
|
|
|
|
|
|
|
g_hash_table_add(packages_struct.updates_list,yon_char_new(package));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
if (g_hash_table_contains(packages_struct.updates_list,package)){
|
|
|
|
|
|
|
|
g_hash_table_remove(packages_struct.updates_list,package);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
free(command);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int yon_packages_install(char *package){
|
|
|
|
|
|
|
|
char *command = install_package_command(package);
|
|
|
|
|
|
|
|
yon_terminal_window_launch(NULL,command,"","");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
yon_packages_update_package(package);
|
|
|
|
|
|
|
|
free(command);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int yon_packages_remove(char *package){
|
|
|
|
|
|
|
|
char *command = remove_package_command(package);
|
|
|
|
|
|
|
|
yon_terminal_window_launch(NULL,command,"","");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
yon_packages_update_package(package);
|
|
|
|
|
|
|
|
free(command);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void yon_packages_finish(){
|
|
|
|
void yon_packages_finish(){
|
|
|
|
g_hash_table_unref(packages_struct.all_list);
|
|
|
|
g_hash_table_unref(packages_struct.all_list);
|
|
|
|
g_hash_table_unref(packages_struct.installed_list);
|
|
|
|
g_hash_table_unref(packages_struct.installed_list);
|
|
|
|
|