pull/46/head
parent 503a8f57a0
commit 92020a6097
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -46,7 +46,7 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
VtePty *pty = vte_pty_new_sync(VTE_PTY_DEFAULT,NULL,NULL);
vte_terminal_set_pty(VTE_TERMINAL(terminal),pty);
char *install_command=yon_char_unite("clear;tput cup 0 0 && tput ed && ",command," ; stty -echo; unset PS1;exit 0","\n",NULL);
char *install_command=yon_char_unite("clear;tput cup 0 0 && tput ed && ",command," ; stty -echo; unset PS1;exit 0; exit 0","\n",NULL);
if(endwork_function)
g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(endwork_function), endwork_function_argument);
vte_terminal_spawn_async(VTE_TERMINAL(terminal),

@ -66,13 +66,13 @@ int yon_packages_init(){
}
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]);
}
for (int i=0;i<updates_size;i++){
yon_char_remove_last_symbol(package_list[i],'\n');
g_hash_table_add(packages_struct.installed_list,updates[i]);
yon_char_remove_last_symbol(updates[i],'\n');
g_hash_table_add(packages_struct.updates_list,updates[i]);
}
free(package_list);
free(installed);
@ -84,6 +84,11 @@ int yon_packages_init(){
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){
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);
}
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(){
g_hash_table_unref(packages_struct.all_list);
g_hash_table_unref(packages_struct.installed_list);

@ -569,3 +569,6 @@ int yon_packages_check_exist(char *package);
int yon_packages_check_installed(char *package);
int yon_packages_check_updates(char *package);
void yon_packages_finish();
void yon_packages_update_package(char *package);
int yon_packages_install(char *package);
int yon_packages_remove(char *package);
Loading…
Cancel
Save