From 111281f14623b7c3e21fe571d07225d890b25359 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Mon, 5 Jun 2023 17:43:38 +0600 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=BD=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=20=D1=81=D0=BB=D0=B0=D0=B9=D1=81=D0=BE=D0=B2=20=D0=B8=20=D1=81?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B8=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ubl-settings-resourcequota.c | 13 ++++++------- source/ubl-settings-resourcequota.h | 5 ++--- source/ubl-utils.c | 16 ++++++++++++++++ source/ubl-utils.h | 2 ++ source/view_add.c | 9 +++++++-- source/view_add.h | 2 ++ 6 files changed, 35 insertions(+), 12 deletions(-) diff --git a/source/ubl-settings-resourcequota.c b/source/ubl-settings-resourcequota.c index 549a0a1..fb73465 100644 --- a/source/ubl-settings-resourcequota.c +++ b/source/ubl-settings-resourcequota.c @@ -237,10 +237,12 @@ void main_update_information() { philos_array_string_remove_char(&fill_cmb_2, "\n", size); } else if (menu_id == 2) { - + fill_cmb_2 = philos_pars_terminal_systemd_cgls(CMD_GET_SLICE_SERVICE, ".service", &size); + philos_array_string_remove_char(&fill_cmb_2, "\n", size); } else if (menu_id == 3) { - + fill_cmb_2 = philos_pars_terminal_systemd_cgls(CMD_GET_SLICE_SERVICE, ".slice", &size); + philos_array_string_remove_char(&fill_cmb_2, "\n", size); } if (menu_id >= 0) { gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->cbtMainInfoLevel2)); @@ -679,7 +681,6 @@ void main_event(main_window *widgets) { */ } void wrapper_add_show(GtkWidget *self) { - add_get_cmd_group(CMD_GET_GROUP); add_show(NULL, glade_path); g_signal_connect(G_OBJECT(get_widget_add()->btnSaveAddSave), "clicked", G_CALLBACK(main_add_btn_save), NULL); } @@ -827,10 +828,6 @@ char* save_format_value(int index) { return value; } -void pars_terminal() { - -} - int check_save(dictionary* load_cfg) { dictionary* ptr_dict_gui = NULL; dictionary* ptr_dict_load = NULL; @@ -995,6 +992,8 @@ int main(int argc, char *argv[]){ exit(0); } } + add_get_cmd_group(CMD_GET_GROUP); + add_get_systemd_cgls(CMD_GET_SLICE_SERVICE); gtk_init(&argc,&argv); device_disk_parsed(); main_window *widgets = setup_window(); diff --git a/source/ubl-settings-resourcequota.h b/source/ubl-settings-resourcequota.h index bae7820..331f5f1 100755 --- a/source/ubl-settings-resourcequota.h +++ b/source/ubl-settings-resourcequota.h @@ -36,9 +36,7 @@ #define CMD_LOAD_SYSTEM "ubconfig --default --source system get security" #define CMD_SAVE_GLOBAL "ubconfig --default --source global set security" #define CMD_SAVE_SYSTEM "ubconfig --default --source system set security" -#define CMD_GET_SLICE " |grep -E -A 1 \"/sys/|^[a-zA-Z0-9]{1,}\"|grep -oE \"\\\"[\\\"0-9a-zA-Z :,./=]{1,}|/sys/[-/a-zA-z0-9:.]{1,}|^[a-zA-Z0-9]{0,}\"" -#define CMD_GET_SERVICE " |grep -E -A 1 \"/sys/|^[a-zA-Z0-9]{1,}\"|grep -oE \"\\\"[\\\"0-9a-zA-Z :,./=]{1,}|/sys/[-/a-zA-z0-9:.]{1,}|^[a-zA-Z0-9]{0,}\"" -#define CMD_GET_GROUP "cut -d: -f1 /etc/group" +#define CMD_GET_SLICE_SERVICE "systemd-cgls --no-page" typedef char* string; string version_application = ""; @@ -199,3 +197,4 @@ void wrapper_system_save(); void wrapper_global_save(); void wrapper_all_save(); void template_format_str_save(dictionary* load_cfg, char* source_cmd); + diff --git a/source/ubl-utils.c b/source/ubl-utils.c index b8f2d44..5650adc 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -982,6 +982,22 @@ char *yon_config_make_save_parameter_with_multiple_arguments(char *parameter_str // terminal-using functions +char** philos_pars_terminal_systemd_cgls(char* CMD_GET_SLICE_SERVICE, char* str_find, int* size_array_data) { + int size = 0; + char** terminal_print = yon_config_load(CMD_GET_SLICE_SERVICE, &size); + char** array_data = NULL; + for (int index = 0; index < size; index++) { + if (strstr(terminal_print[index], str_find) != NULL) { + yon_char_divide_search(terminal_print[index],"─",-1); + terminal_print[index] = yon_char_divide_search(terminal_print[index]," ", -1); + yon_char_divide(terminal_print[index],1); + array_data = yon_char_parsed_append(array_data, size_array_data, terminal_print[index]); + + } + } + return array_data; +} + int yon_launch_app(char *name) { char *path = name; diff --git a/source/ubl-utils.h b/source/ubl-utils.h index 2014bbb..8e461dd 100644 --- a/source/ubl-utils.h +++ b/source/ubl-utils.h @@ -186,6 +186,8 @@ char *yon_config_make_save_parameter_with_multiple_arguments(char *parameter_str // terminal-using functions +char** philos_pars_terminal_systemd_cgls(char* CMD_GET_SLICE_SERVICE, char* str_find, int* size_array_data); + int yon_launch_app(char *name); int yon_launch_app_with_arguments(char *name, char *args); diff --git a/source/view_add.c b/source/view_add.c index 2ccca86..8294ca1 100644 --- a/source/view_add.c +++ b/source/view_add.c @@ -87,6 +87,9 @@ void add_event(add_window *widgets) { void add_get_cmd_group(char* cmd_get_group) { CMD_GET_GROUP = cmd_get_group; } +void add_get_systemd_cgls(char* cmd_systemd_cgls) { + CMD_GET_SLICE_SERVICE = cmd_systemd_cgls; +} void add_destroy(GtkWidget *self) { add_widgets = NULL; @@ -220,10 +223,12 @@ void add_update_combo_box() { philos_array_string_remove_char(&fill_cmb_2, "\n", size); } else if (menu_id == 2) { - + fill_cmb_2 = philos_pars_terminal_systemd_cgls(CMD_GET_SLICE_SERVICE, ".service", &size); + philos_array_string_remove_char(&fill_cmb_2, "\n", size); } else if (menu_id == 3) { - + fill_cmb_2 = philos_pars_terminal_systemd_cgls(CMD_GET_SLICE_SERVICE, ".slice", &size); + philos_array_string_remove_char(&fill_cmb_2, "\n", size); } if (menu_id >= 0) { gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(add_widgets->cbxAddQuotaLevel2)); diff --git a/source/view_add.h b/source/view_add.h index 068e5c9..a55301b 100644 --- a/source/view_add.h +++ b/source/view_add.h @@ -14,6 +14,7 @@ #include "my_device.h" static char* CMD_GET_GROUP; +static char* CMD_GET_SLICE_SERVICE; // Переменные typedef struct { @@ -81,4 +82,5 @@ int add_get_quota_object_size(); void add_get_cmd_group(char* cmd_get_group); char* add_get_select_device_to_level_2(); void add_generate_cmd(); +void add_get_systemd_cgls(char* cmd_systemd_cgls); #endif \ No newline at end of file