|
|
|
|
@ -125,19 +125,20 @@ int yon_size_get_int_from_letter(char size){
|
|
|
|
|
|
|
|
|
|
//functions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void update_loaded_logrotate(){
|
|
|
|
|
int size=0;
|
|
|
|
|
gtk_list_store_clear(main_config.logrotate_list);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
config_str loaded = yon_config_get_all_by_key("LOGROTATE[",&size);
|
|
|
|
|
char *desc;
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
char *paths = yon_char_divide_search(loaded[i],"=",-1);
|
|
|
|
|
yon_char_divide(paths,strlen("LOGROTATE"));
|
|
|
|
|
yon_char_divide_search_self(paths,"]",-1);
|
|
|
|
|
loaded[i] = yon_char_replace(loaded[i],",","\n");
|
|
|
|
|
yon_window_config_get_parameter("description",paths,&desc,YON_TYPE_STRING);
|
|
|
|
|
paths = yon_char_replace(paths,",","\n");
|
|
|
|
|
gtk_list_store_append(main_config.logrotate_list,&iter);
|
|
|
|
|
gtk_list_store_set(main_config.logrotate_list,&iter,1,paths,-1);
|
|
|
|
|
gtk_list_store_set(main_config.logrotate_list,&iter,1,paths,2,desc ? desc : "",-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -202,71 +203,73 @@ void on_save_local(){
|
|
|
|
|
void on_inspector_update(GtkWidget *self, inspector_window *window){
|
|
|
|
|
int size;
|
|
|
|
|
GtkTextIter titer,titerend;
|
|
|
|
|
gtk_text_buffer_get_bounds(window->textbuffer1,&titer,&titerend);
|
|
|
|
|
gtk_text_buffer_delete(window->textbuffer1,&titer,&titerend);
|
|
|
|
|
config_str output;
|
|
|
|
|
if (!strcmp(window->journal_name,"journald")){
|
|
|
|
|
if (self==window->UpdateButton){
|
|
|
|
|
switch(window->last_mode){
|
|
|
|
|
case 0: output = yon_config_load(get_journal_output_command, &size);
|
|
|
|
|
case 0:
|
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_command,NULL,NULL);
|
|
|
|
|
break;
|
|
|
|
|
case 1: output = yon_config_load(get_journal_output_since_boot_command, &size);
|
|
|
|
|
case 1:
|
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_since_boot_command,NULL,NULL);
|
|
|
|
|
break;
|
|
|
|
|
case 2: output = yon_config_load(get_journal_output_followed_command, &size);
|
|
|
|
|
case 2:
|
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_followed_command,NULL,NULL);
|
|
|
|
|
break;
|
|
|
|
|
case 3: output = yon_config_load(get_journal_output_kernel_command, &size);
|
|
|
|
|
case 3:
|
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_kernel_command,NULL,NULL);
|
|
|
|
|
break;
|
|
|
|
|
case 4: output = yon_config_load(get_journal_output_prioritied_command, &size);
|
|
|
|
|
case 4:
|
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_prioritied_command,NULL,NULL);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (self==window->ShowSinceBootButton){
|
|
|
|
|
window->last_mode=1;
|
|
|
|
|
output = yon_config_load(get_journal_output_since_boot_command, &size);
|
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_since_boot_command,NULL,NULL);
|
|
|
|
|
}
|
|
|
|
|
if (self==window->NewMessagesButton){
|
|
|
|
|
window->last_mode=2;
|
|
|
|
|
output = yon_config_load(get_journal_output_followed_command, &size);
|
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_followed_command,NULL,NULL);
|
|
|
|
|
}
|
|
|
|
|
if (self==window->ShowKernelButton){
|
|
|
|
|
window->last_mode=3;
|
|
|
|
|
output = yon_config_load(get_journal_output_kernel_command, &size);
|
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_kernel_command,NULL,NULL);
|
|
|
|
|
}
|
|
|
|
|
if (self==window->ShowPriorityButton){
|
|
|
|
|
window->last_mode=4;
|
|
|
|
|
output = yon_config_load(get_journal_output_prioritied_command, &size);
|
|
|
|
|
}
|
|
|
|
|
if (output){
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
|
|
|
|
|
gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1);
|
|
|
|
|
}
|
|
|
|
|
gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
|
|
|
|
|
gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTextView),&titer,0.25,0,1,0);
|
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_prioritied_command,NULL,NULL);
|
|
|
|
|
}
|
|
|
|
|
// if (output){
|
|
|
|
|
// for (int i=0;i<size;i++){
|
|
|
|
|
// gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
|
|
|
|
|
// gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1);
|
|
|
|
|
// }
|
|
|
|
|
// gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
|
|
|
|
|
// gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTerminal),&titer,0.25,0,1,0);
|
|
|
|
|
// }
|
|
|
|
|
} else {
|
|
|
|
|
window->journal_paths = yon_char_replace(window->journal_paths,"\n"," ");
|
|
|
|
|
output = yon_config_load(yon_char_unite("cat ",window->journal_paths,NULL),&size);
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
|
|
|
|
|
gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1);
|
|
|
|
|
}
|
|
|
|
|
gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
|
|
|
|
|
gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTextView),&titer,0.25,0,1,0);
|
|
|
|
|
// window->journal_paths = yon_char_replace(window->journal_paths,"\n"," ");
|
|
|
|
|
// output = yon_config_load(yon_char_unite("cat ",window->journal_paths,NULL),&size);
|
|
|
|
|
// for (int i=0;i<size;i++){
|
|
|
|
|
// gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
|
|
|
|
|
// gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1);
|
|
|
|
|
// }
|
|
|
|
|
// gtk_text_buffer_get_end_iter(window->textbuffer1,&titer);
|
|
|
|
|
// gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTerminal),&titer,0.25,0,1,0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_inspector_open(GtkWidget *self, main_window *widgets){
|
|
|
|
|
inspector_window *window = malloc(sizeof(inspector_window));
|
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_inspector_path);
|
|
|
|
|
window->textbuffer1=GTK_TEXT_BUFFER(gtk_builder_get_object(builder,"textbuffer1"));
|
|
|
|
|
window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
|
|
|
|
|
window->ShowSinceBootButton=yon_gtk_builder_get_widget(builder,"ShowSinceBootButton");
|
|
|
|
|
window->NewMessagesButton=yon_gtk_builder_get_widget(builder,"NewMessagesButton");
|
|
|
|
|
window->ShowKernelButton=yon_gtk_builder_get_widget(builder,"ShowKernelButton");
|
|
|
|
|
window->ShowPriorityButton=yon_gtk_builder_get_widget(builder,"ShowPriorityButton");
|
|
|
|
|
window->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton");
|
|
|
|
|
window->LoggingTextView=yon_gtk_builder_get_widget(builder,"LoggingTextView");
|
|
|
|
|
window->LoggingTerminal=yon_gtk_builder_get_widget(builder,"LoggingTerminal");
|
|
|
|
|
window->JournalActionsBox=yon_gtk_builder_get_widget(builder,"JournalActionsBox");
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
|
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
|
|
|
|
|
@ -745,15 +748,27 @@ void on_logrotate_save(GtkWidget *self, dictionary *dict){
|
|
|
|
|
char *after = (char*)gtk_entry_get_text(GTK_ENTRY(window->CommandAfterEntry));
|
|
|
|
|
char *endwork = (char*)gtk_entry_get_text(GTK_ENTRY(window->EndworkCommandEntry));
|
|
|
|
|
sharedscripts = "sharedscripts";
|
|
|
|
|
if (!yon_char_is_empty(before_once))
|
|
|
|
|
if (!yon_char_is_empty(before_once)) {
|
|
|
|
|
before_once = yon_char_replace(before_once,"\"","=--");
|
|
|
|
|
before_once = yon_char_replace(before_once,"=--","\\\"");
|
|
|
|
|
firstaction = yon_char_append("firstaction ",before_once);
|
|
|
|
|
if (!yon_char_is_empty(after_once))
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(after_once)) {
|
|
|
|
|
after_once = yon_char_replace(after_once,"\"","=--");
|
|
|
|
|
after_once = yon_char_replace(after_once,"=--","\\\"");
|
|
|
|
|
lastaction = yon_char_append("lastaction ",after_once);
|
|
|
|
|
if (!yon_char_is_empty(before))
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(before)) {
|
|
|
|
|
before = yon_char_replace(before,"\"","=--");
|
|
|
|
|
before = yon_char_replace(before,"=--","\\\"");
|
|
|
|
|
prerotate = yon_char_append("prerotate ",before);
|
|
|
|
|
if (!yon_char_is_empty(after))
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(after)) {
|
|
|
|
|
after = yon_char_replace(after,"\"","=--");
|
|
|
|
|
after = yon_char_replace(after,"=--","\\\"");
|
|
|
|
|
postrotate = yon_char_append("postrotate ",after);
|
|
|
|
|
if (!yon_char_is_empty(endwork))
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(firstaction)||!yon_char_is_empty(after_once)||!yon_char_is_empty(before)||!yon_char_is_empty(after))
|
|
|
|
|
endscript = yon_char_append("endscript ",endwork);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -762,8 +777,13 @@ void on_logrotate_save(GtkWidget *self, dictionary *dict){
|
|
|
|
|
free(yon_char_divide_search(commandline,",",-1));
|
|
|
|
|
}
|
|
|
|
|
if(!yon_char_is_empty(paths)){
|
|
|
|
|
if(window->paths){
|
|
|
|
|
yon_config_remove_by_key(window->paths);
|
|
|
|
|
yon_window_config_erase_custom_parameter(window->paths,"description");
|
|
|
|
|
}
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
yon_config_register(LOGROTATE(paths),"logging",commandline);
|
|
|
|
|
yon_window_config_add_custom_parameter(paths,"description",yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->LogDescriptionEntry))),YON_TYPE_STRING);
|
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(main_config.logrotate_list);
|
|
|
|
|
if (!dialog||!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->MainTree)),&model,&iter)){
|
|
|
|
|
gtk_list_store_append(main_config.logrotate_list,&iter);
|
|
|
|
|
@ -839,6 +859,7 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind
|
|
|
|
|
window->CommandAfterEntry=yon_gtk_builder_get_widget(builder,"CommandAfterEntry");
|
|
|
|
|
window->EndworkCommandEntry=yon_gtk_builder_get_widget(builder,"EndworkCommandEntry");
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
|
|
|
|
|
window->paths=paths;
|
|
|
|
|
|
|
|
|
|
if (paths){
|
|
|
|
|
int sz;
|
|
|
|
|
@ -1035,7 +1056,7 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->CommandBeforeEntry),value);
|
|
|
|
|
i++;
|
|
|
|
|
}else if (strstr(parsed[i],"postrotate")){
|
|
|
|
|
char *value = parsed[i+1];
|
|
|
|
|
char *value = strstr(parsed[i]," ")+1;
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->CommandAfterEntry),value);
|
|
|
|
|
i++;
|
|
|
|
|
// }else if (!strcmp(parsed[i],"preremove")){
|
|
|
|
|
@ -1082,11 +1103,11 @@ void on_logrotate_edit(GtkWidget *self, logrotate_window *window){
|
|
|
|
|
gtk_widget_show(dialog->MainWindow);
|
|
|
|
|
gtk_tree_model_get(model,&iter,0,&name,1,&paths,2,&description,-1);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(dialog->LogNameEntry),name);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(dialog->LogDescriptionEntry),description);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(dialog->LogDescriptionEntry),description ? description : "");
|
|
|
|
|
gtk_widget_set_can_focus(dialog->LogNameEntry,0);
|
|
|
|
|
gtk_widget_set_can_focus(dialog->LogDescriptionEntry,0);
|
|
|
|
|
// gtk_widget_set_can_focus(dialog->LogDescriptionEntry,0);
|
|
|
|
|
gtk_entry_set_has_frame(GTK_ENTRY(dialog->LogNameEntry),0);
|
|
|
|
|
gtk_entry_set_has_frame(GTK_ENTRY(dialog->LogDescriptionEntry),0);
|
|
|
|
|
// gtk_entry_set_has_frame(GTK_ENTRY(dialog->LogDescriptionEntry),0);
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context(dialog->LogNameEntry),"nobackground");
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context(dialog->LogDescriptionEntry),"nobackground");
|
|
|
|
|
}
|
|
|
|
|
@ -1635,7 +1656,7 @@ void on_log_edit(GtkWidget *self,main_window *widgets){
|
|
|
|
|
// g_signal_connect(G_OBJECT(window->SyslogButton),"clicked", G_CALLBACK(yon_journald_open),widgets);
|
|
|
|
|
}
|
|
|
|
|
window->log_name=name;
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->LogDescriptionEntry),description);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->LogDescriptionEntry),description ? description : "");
|
|
|
|
|
config_str paths_parsed = yon_char_parse(paths,&size,"\n");
|
|
|
|
|
GtkWidget *last=NULL;
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
@ -1654,7 +1675,7 @@ void on_log_edit(GtkWidget *self,main_window *widgets){
|
|
|
|
|
gtk_widget_show(last);
|
|
|
|
|
g_signal_connect(G_OBJECT(last),"clicked",G_CALLBACK(on_log_path_append),window);
|
|
|
|
|
gtk_widget_set_sensitive(window->LogTypeCombo,0);
|
|
|
|
|
gtk_widget_set_sensitive(window->LogDescriptionEntry,0);
|
|
|
|
|
// gtk_widget_set_sensitive(window->LogDescriptionEntry,0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1920,12 +1941,15 @@ main_window *setup_window(){
|
|
|
|
|
GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->MainTree));
|
|
|
|
|
for (int i=0; i<g_list_length(list);i++){
|
|
|
|
|
yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("column",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
|
|
|
|
|
// yon_gtk_column_minimal_fixed_size_set((GtkTreeViewColumn*)g_list_nth_data(list,i));
|
|
|
|
|
}
|
|
|
|
|
g_list_free(list);
|
|
|
|
|
list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->ServicesTree));
|
|
|
|
|
for (int i=0; i<g_list_length(list);i++){
|
|
|
|
|
yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("servicecolumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
|
|
|
|
|
// yon_gtk_column_minimal_fixed_size_set((GtkTreeViewColumn*)g_list_nth_data(list,i));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Widget registration for config monitoring | Регистрация виджетов для мониторинга конфига */
|
|
|
|
|
// yon_window_config_add_custom_parameter(widgets->HeadInfoLabel,"head-text","label",YON_TYPE_STRING);
|
|
|
|
|
|
|
|
|
|
@ -2045,7 +2069,6 @@ int main(int argc, char *argv[]){
|
|
|
|
|
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
yon_ubl_setup_sockets(widgets->PlugBox,widgets->LeftBox,widgets->RightBox,main_config.socket_id,main_config.load_socket_id,main_config.save_socket_id);
|
|
|
|
|
yon_window_config_setup(GTK_WINDOW(widgets->Window));
|
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
|
yon_window_config_load(config_path);
|
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
|
update_loaded_logrotate();
|
|
|
|
|
|