rtfm-filemanager 1.3.5 → 1.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/rtfm +44 -25
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2fdfba59295e424a39605d0501e0df29a7a37d9ad36429adb412d8d13c54c752
4
- data.tar.gz: 2a5523150436439dbbcabf66a7e9c8505c7ad30c82fd827e2b198ab5f73361e9
3
+ metadata.gz: b5c18ed2d6400377fdf9e2acf29f0ca8e4cee53fdc96fc5db49f5e9be6ed5a43
4
+ data.tar.gz: 6596098c323336814fd4fd0cdb147441ff70479580cbc6f6a441fa4f551be485
5
5
  SHA512:
6
- metadata.gz: 5e1cf39a6d5e205a7ea226bc8c70d885037077d1ed918450634a8fc9feb179dee05a03f58bcc174609c7419231b2d4df3b1f1b3bd7cb4cc89bd4a01d658124c6
7
- data.tar.gz: 5a152abd6d7c54de6c116f6ecac690e939cd2d07b28a1e7b9d4261337f72e6b23a833162567ccd6fb6674d5e92882551d9f27e3d7167ac4d61c00d6eb894b492
6
+ metadata.gz: 90b2cc8d115449ca2d66a92e053c33c956dad083067dcef5f750476c8a8ae8c0a6c36592da11ad29aacd831af1fc59b39a09bda2913a836354763da7f75eaba8
7
+ data.tar.gz: e1dead5ecb7189b0dedc7a48eeeab77b29b810f699bbe39f21d011115c70f63f1841b81133cb3c70b6e4d2187bc583d1e9338f150485b8ae511c6d95c79350ec
data/bin/rtfm CHANGED
@@ -188,7 +188,7 @@ begin # BASIC SETUP
188
188
  end
189
189
  end
190
190
  class Curses::Window # CLASS EXTENSION
191
- attr_accessor :fg, :bg, :attr, :text, :update, :pager, :pager_more, :pager_cmd, :locate, :nohistory
191
+ attr_accessor :fg, :bg, :attr, :text, :update, :pager, :pager_more, :pager_cmd, :locate, :nohistory
192
192
  # General extensions (see https://github.com/isene/Ruby-Curses-Class-Extension)
193
193
  def clr
194
194
  self.setpos(0, 0)
@@ -228,12 +228,12 @@ def get_ls_color(type) # GET THE COLOR FOR THE FILETYPE FROM IMPORTED LS_COLORS
228
228
  return color.to_i, bold
229
229
  end
230
230
  def color_parse(input) # PARSE ANSI COLOR SEQUENCES
231
- input.gsub!( /\e\[\d;38;5;(\d+)m/, '%-%\1%-%')
232
- input.gsub!( /\e\[38;5;(\d+)m/, '%-%\1%-%')
231
+ #input.gsub!( /\e\[\d;38;5;(\d+)m/, '¤¤\1¤¤')
232
+ input.gsub!( /\e\[38;5;(\d+);*(\d*)m/, '¤¤\1¤¤\2¤¤')
233
233
  input.gsub!( /\e\[0m/, "\t")
234
- color_array = input.split("%-%")
234
+ color_array = input.split("¤¤")
235
235
  color_array = color_array.drop(1)
236
- output = color_array.each_slice(2).to_a
236
+ output = color_array.each_slice(3).to_a
237
237
  return output
238
238
  end
239
239
  def getchr # PROCESS KEY PRESSES
@@ -561,22 +561,28 @@ def main_getkey # GET KEY FROM USER
561
561
  @w_b.update = false
562
562
  when 'S' # Show comprehensive system info
563
563
  @w_r.pager_cmd = ""
564
- systext = `uname -o`.chop + " "
565
- systext += `uname -r`.chop + " "
566
- systext += `uname -v`.chop + " "
567
- systext += `uname -p` + "\n"
568
- systext += `free -h` + "\n"
569
- systext += "CPUs = " + `nproc`.chop + " "
570
- cpuinfo = `lscpu`
571
- systext += cpuinfo[/^.*Model name:\s*(.*)/, 1] + " "
572
- systext += "Max: " + cpuinfo[/^.*CPU max MHz:\s*(.*)/, 1][/(.*),.*/, 1] + "MHz "
573
- systext += "Min: " + cpuinfo[/^.*CPU min MHz:\s*(.*)/, 1][/(.*),.*/, 1] + "MHz "
574
- systext += "\n\n"
575
- systext += `df -H`
576
- systext += "\nDMESG:\n"
577
- systext += `dmesg | tail -10`
578
- @w_r.fg = 155
579
- w_r_info(systext)
564
+ uname = `uname -o`.chop + " "
565
+ uname += `uname -r`.chop + " "
566
+ uname += `uname -v`.chop + " "
567
+ uname += `uname -p` + "\n"
568
+ text = [[253, 1, uname]]
569
+ mem = `free -h` + "\n"
570
+ text += [[229, 0, mem]]
571
+ cpu = "CPUs = " + `nproc`.chop + " "
572
+ cpuinfo = `lscpu`
573
+ cpu += cpuinfo[/^.*Model name:\s*(.*)/, 1] + " "
574
+ cpu += "Max: " + cpuinfo[/^.*CPU max MHz:\s*(.*)/, 1][/(.*),.*/, 1] + "MHz "
575
+ cpu += "Min: " + cpuinfo[/^.*CPU min MHz:\s*(.*)/, 1][/(.*),.*/, 1] + "MHz "
576
+ cpu += "\n\n"
577
+ text += [[154, 0, cpu]]
578
+ disk = `df -H`
579
+ text += [[123, 0, disk]]
580
+ dmesg = "\nDMESG:\n"
581
+ dmesg += `dmesg | tail -10`
582
+ text += [[213, 0, dmesg]]
583
+ @w_r.text= ansifix(text)
584
+ pager_start
585
+ pager_show
580
586
  @w_r.update = false
581
587
  # RIGHT PANE
582
588
  when 'ENTER' # Refresh right pane
@@ -696,6 +702,16 @@ def conf_write
696
702
  end
697
703
  File.write(Dir.home+'/.rtfm.conf', conf)
698
704
  end
705
+ def ansifix(text) # Format [[fg, attr, text]]
706
+ output = ""
707
+ text.each do |e|
708
+ ansi = "\e[38;5;#{e[0]}"
709
+ ansi += ";1" if e[1] == 1
710
+ ansi += "m"
711
+ output += ansi + e[2].gsub(/\n/, "\n#{ansi}")
712
+ end
713
+ return output
714
+ end
699
715
  # TOP WINDOW FUNCTIONS
700
716
  def w_t_info # SHOW INFO IN @w_t
701
717
  text = " " + ENV['USER'].to_s + "@" + `hostname 2>/dev/null`.to_s.chop + ": " + Dir.pwd + "/"
@@ -971,15 +987,17 @@ def tagged_info # SHOW THE LIST OF TAGGED ITEMS IN @w_r
971
987
  @tagged.empty? ? info += "(None)" : info += @tagged.join("\n")
972
988
  w_r_info(info)
973
989
  end
974
- def syntax_highlight(input) # BATCAT SYNTAX HIGHLIGHTING
990
+ def syntax_highlight(input) # SYNTAX HIGHLIGHTING FROM ANSI COLOR CODES
975
991
  color_ary = color_parse(input)
976
992
  color_ary.each do | pair |
977
993
  begin
978
994
  fg = pair[0].to_i
979
- text = pair[1]
995
+ atr = pair[1].to_i
996
+ atr == 1 ? atr = Curses::A_BOLD : atr = 0
997
+ text = pair[2]
980
998
  text.gsub!(/\t/, '')
981
999
  init_pair(fg, fg, 0)
982
- @w_r.attron(color_pair(fg)) { @w_r << text }
1000
+ @w_r.attron(color_pair(fg) | atr) { @w_r << text }
983
1001
  rescue
984
1002
  end
985
1003
  end
@@ -1033,7 +1051,8 @@ def pager_show # SHOW THE CURRENT PAGE CONTENT
1033
1051
  end_l = beg_l + @w_r.maxy - 2
1034
1052
  input = @w_r.text.lines[beg_l..end_l].join() + "\n"
1035
1053
  input.lines.count > @w_r.maxy - 2 ? @w_r.pager_more = true : @w_r.pager_more = false
1036
- if @w_r.pager_cmd.match(/batcat/)
1054
+ #if @w_r.pager_cmd.match(/batcat/)
1055
+ if @w_r.text.match(/^\e\[/)
1037
1056
  syntax_highlight(input)
1038
1057
  else
1039
1058
  if @w_r.fg == nil
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtfm-filemanager
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.5
4
+ version: 1.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geir Isene
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-25 00:00:00.000000000 Z
11
+ date: 2021-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
@@ -33,8 +33,8 @@ dependencies:
33
33
  description: 'A full featured terminal browser with syntax highlighted files, images
34
34
  shown in the terminal, videos thumbnailed, etc. You can bookmark and jump around
35
35
  easily, delete, rename, copy, symlink and move files. RTFM has a a wide range of
36
- other features. New in 1.3.5: Sexify by color some of the info shown in right pane
37
- (like Help, Tagged, Marks and System Info)'
36
+ other features. New in 1.3.6: Created a better ANSI color code parser and prettified
37
+ system info (via key ''S'')'
38
38
  email: g@isene.com
39
39
  executables:
40
40
  - rtfm