aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorImmae <ismael.bouya@normalesup.org>2014-06-29 23:34:44 +0200
committerImmae <ismael.bouya@normalesup.org>2014-06-29 23:34:44 +0200
commit31d11931d1dbde78afbdc67ba2405f3e8e78369d (patch)
treeab299c1a45828568fadc5fa6deef8cf0d603d2de
parent332497b1a92f4257eea0c9257d041c8898c91c31 (diff)
downloadMonitor-master.tar.gz
Monitor-master.tar.zst
Monitor-master.zip
Customization of window sizeHEADmaster
-rw-r--r--.gitignore1
-rw-r--r--TODO2
-rw-r--r--ini_read.rb15
-rw-r--r--monitor.rb20
-rw-r--r--monitorrc3
-rw-r--r--windows.rb4
6 files changed, 30 insertions, 15 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1377554
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
*.swp
diff --git a/TODO b/TODO
index 2bb819c..923f280 100644
--- a/TODO
+++ b/TODO
@@ -3,8 +3,6 @@
3- keep previous buffers for oneshot commands 3- keep previous buffers for oneshot commands
4- custom key bindings (and informations in the window) 4- custom key bindings (and informations in the window)
5- Man file 5- Man file
6- Check correctness of entries in config file (and capitalization)
7- Customization of window size
8- ~Internationalization 6- ~Internationalization
9- Respect colors from command? 7- Respect colors from command?
10 8
diff --git a/ini_read.rb b/ini_read.rb
index 9ae3f1b..41259d8 100644
--- a/ini_read.rb
+++ b/ini_read.rb
@@ -32,6 +32,7 @@ class Ini_read
32 find_ini(options.inifile) 32 find_ini(options.inifile)
33 read_ini() 33 read_ini()
34 parse_config() 34 parse_config()
35 parse_global()
35 end 36 end
36 37
37 def find_ini(option_inifile) 38 def find_ini(option_inifile)
@@ -47,7 +48,7 @@ class Ini_read
47 end 48 end
48 49
49 def read_ini() 50 def read_ini()
50 @config = IniFile.load(@inifile, :default=>'global') 51 @config = IniFile.load(@inifile, :default => 'global')
51 if(@config.nil?) 52 if(@config.nil?)
52 puts "Initialization file not found or not readable" 53 puts "Initialization file not found or not readable"
53 exit 54 exit
@@ -65,6 +66,7 @@ class Ini_read
65 sec = @config[section] 66 sec = @config[section]
66 if(section == "global") 67 if(section == "global")
67 @global = sec 68 @global = sec
69 next
68 end 70 end
69 if(not sec.has_key?('Type')) 71 if(not sec.has_key?('Type'))
70 puts "Section incomplete, ignored: "+ section 72 puts "Section incomplete, ignored: "+ section
@@ -87,5 +89,16 @@ class Ini_read
87 end 89 end
88 end 90 end
89 91
92 def parse_global()
93 if(@global.has_key?('list_size'))
94 @global['list_size'] = @global['list_size'].to_i
95 if(@global['list_size'] == 0)
96 @global['list_size'] = 25
97 end
98 else
99 @global['list_size'] = 25
100 end
101 end
102
90end 103end
91 104
diff --git a/monitor.rb b/monitor.rb
index 65df79f..c2a57f8 100644
--- a/monitor.rb
+++ b/monitor.rb
@@ -5,11 +5,11 @@ require_relative 'ini_read'
5require_relative 'windows' 5require_relative 'windows'
6require_relative 'buffer' 6require_relative 'buffer'
7 7
8def make_bufwins(sections) 8def make_bufwins(sections,size)
9 bufwins = [] 9 bufwins = []
10 sections.each { |section_name,section| 10 sections.each { |section_name,section|
11 bufwin = Buff_Win.new(Ncurses.COLS()-Ncurses.COLS()/4, 11 bufwin = Buff_Win.new(Ncurses.COLS()-size*Ncurses.COLS()/100,
12 Ncurses.COLS()/4, 12 size*Ncurses.COLS()/100,
13 section) 13 section)
14 bufwins.push(bufwin) 14 bufwins.push(bufwin)
15 } 15 }
@@ -22,11 +22,11 @@ def update_buffers(bufwins)
22 end 22 end
23end 23end
24 24
25def redraw_all(list,bufwins,curr_bufwin) 25def redraw_all(list,bufwins,curr_bufwin, size)
26 bufwins.each do |bufwin| 26 bufwins.each do |bufwin|
27 bufwin.move_resize(Ncurses.COLS()-Ncurses.COLS()/4,Ncurses.COLS()/4) 27 bufwin.move_resize(Ncurses.COLS()-size*Ncurses.COLS()/100,size*Ncurses.COLS()/100)
28 end 28 end
29 list.resize(Ncurses.LINES(), Ncurses.COLS()/4) 29 list.resize(Ncurses.LINES(), size*Ncurses.COLS()/100)
30 list.clear() 30 list.clear()
31 list.print_list() 31 list.print_list()
32 list.refresh() 32 list.refresh()
@@ -48,8 +48,8 @@ begin
48 Ncurses.init_pair(10, Ncurses::COLOR_WHITE, Ncurses::COLOR_BLACK) 48 Ncurses.init_pair(10, Ncurses::COLOR_WHITE, Ncurses::COLOR_BLACK)
49 49
50 50
51 list = List_Win.new(inistruct.sections) 51 list = List_Win.new(inistruct.sections, inistruct.global['list_size'])
52 bufwins = make_bufwins(inistruct.sections) 52 bufwins = make_bufwins(inistruct.sections, inistruct.global['list_size'])
53 entry = 0 53 entry = 0
54 cur_bufwin = bufwins[entry] 54 cur_bufwin = bufwins[entry]
55 cur_bufwin.show_win() 55 cur_bufwin.show_win()
@@ -67,11 +67,11 @@ begin
67 cur_bufwin.show_win() 67 cur_bufwin.show_win()
68 list.print_list(entry=entry) 68 list.print_list(entry=entry)
69 when 12 #ctrl+L 69 when 12 #ctrl+L
70 redraw_all(list,bufwins,cur_bufwin) 70 redraw_all(list,bufwins,cur_bufwin, inistruct.global['list_size'])
71 when 18 #ctrl+R 71 when 18 #ctrl+R
72 cur_bufwin.update(force=true) 72 cur_bufwin.update(force=true)
73 when Ncurses::KEY_RESIZE 73 when Ncurses::KEY_RESIZE
74 redraw_all(list,bufwins,cur_bufwin) 74 redraw_all(list,bufwins,cur_bufwin, inistruct.global['list_size'])
75 when Ncurses::KEY_LEFT 75 when Ncurses::KEY_LEFT
76 cur_bufwin.hscroll(scroll=-1) 76 cur_bufwin.hscroll(scroll=-1)
77 when Ncurses::KEY_RIGHT 77 when Ncurses::KEY_RIGHT
diff --git a/monitorrc b/monitorrc
index 8bd4c4b..b4db9bc 100644
--- a/monitorrc
+++ b/monitorrc
@@ -1,3 +1,6 @@
1[global]
2list_size = 50
3
1[journalctl_err] 4[journalctl_err]
2Name = Journalctl errors 5Name = Journalctl errors
3Command = "journalctl --full -f -p4" 6Command = "journalctl --full -f -p4"
diff --git a/windows.rb b/windows.rb
index 96a45b9..5d195dd 100644
--- a/windows.rb
+++ b/windows.rb
@@ -52,9 +52,9 @@ end
52 52
53 53
54class List_Win 54class List_Win
55 def initialize(sections) 55 def initialize(sections, size)
56 @params = sections 56 @params = sections
57 @win = Ncurses::WINDOW.new(0, Ncurses.COLS()/4, 0, 0) 57 @win = Ncurses::WINDOW.new(0, size*Ncurses.COLS()/100, 0, 0)
58 @win.border(*([0]*8)) 58 @win.border(*([0]*8))
59 @win.keypad(true) 59 @win.keypad(true)
60 @win.timeout(1000) 60 @win.timeout(1000)