ruby-shell 0.19 → 0.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/.rshrc +9 -4
  3. data/README.md +7 -2
  4. data/bin/rsh +31 -18
  5. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8c4db771e1dbd372496d80bf721a96c79e39ad21406e0cc2f68e3b382dd7df4
4
- data.tar.gz: 7b7c8335bec3b659f7cc82f3f655dd179e053f74a016eed112969a2008cd0ced
3
+ metadata.gz: a8d28ba94f7b6a6e05496bccb94efe444ba34871ab036b448fb0d074dcadf59d
4
+ data.tar.gz: 041e37fe2d4876a59b097d74eddd846be9de62915ee857943c4c86b2e4080a50
5
5
  SHA512:
6
- metadata.gz: 0cfa55a0c59bfa616c725cee507632b85a2676a35cfc14f753bd673124d25bb74848a43ea6ac0cbdc09a8cf2c580f74ff93d0bb50602cfd8e760086365ec1705
7
- data.tar.gz: 70f3584e3bfffe1b09f0bb3cc6bdf0b2aaa5028371d5b11ffae951bb2fd461babf4c989f682e22ccafea24fd9a1957ceaa7f6338b9443fa7baf44c6de46880f2
6
+ metadata.gz: a681b059f27359fa185cc6f1092ac3bf2b8e9084a79ee5650f154b906b25ec84a20eb4920961576a945787cb6d925c6f16cab915383ea9b07ba3a2ed58bc634d
7
+ data.tar.gz: 04bde7676375ce81782b2ba15abda281a650de049d79734eb23b0db4b67987f089db1b2fd4bf3be52bc5dc6730f900d95acc2ade046fe70097272cf09730673e
data/.rshrc CHANGED
@@ -1,10 +1,13 @@
1
1
  # vim: set ft=ruby sw=2 sts=2 et :
2
2
 
3
+ # ENVIRONMENT
4
+ #@lscolors = "/home/geir/.local/share/lscolors.sh"
5
+ ENV["EDITOR"] = "vim"
6
+ ENV["MANPAGER"] = "vim +MANPAGER -"
7
+
3
8
  # PROMPT
4
- # The numbers in parenthesis are 256 color codes (the '.c()' is a String extention
5
- # to color text in the terminal. Add '.b' for bold and '.i' for italics.
6
9
  if @user == "root"
7
- @prompt = "#{@user}@#{@node}".c(160) + ":".c(255) + " #{Dir.pwd}/".c(196) + " ".c(7)
10
+ @prompt = "#{@user}@#{@node}".c(160).b + ":".c(255) + " #{Dir.pwd}/".c(196) + " ".c(7)
8
11
  else
9
12
  @prompt = "#{@user}@#{@node}".c(46) + ":".c(255) + " #{Dir.pwd}/".c(196) + " ".c(7)
10
13
  end
@@ -20,5 +23,7 @@ end
20
23
  @c_taboption = 244 # Color for unselected tabcompleted item
21
24
  @c_stamp = 244 # Color for time stamp/command
22
25
 
23
- # UPDATED ON CTRL-D EXIT
26
+ # NICKS AND HISTORY
24
27
  @nick = {"ls"=>"ls --color -F"}
28
+ @gnick = {}
29
+ @history = []
data/README.md CHANGED
@@ -23,6 +23,7 @@ Or simply `gem install ruby-shell`.
23
23
  * Tab completions for nicks, system commands, command switches and dirs/files
24
24
  * Tab completion presents matches in a list to pick from
25
25
  * When you start to write a command, rsh will suggest the first match in the history and present that in "toned down" letters - press the arrow right key to accept the suggestion.
26
+ * Writing a partial command and pressing `UP` will search history for matches. Go down/up in the list and press `TAB` or `ENTER` to accept or `Ctrl-G` to discard
26
27
  * History with editing, search and repeat a history command (with `!`)
27
28
  * Config file (.rshrc) updates on exit (with Ctrl-d) or not (with Ctrl-c)
28
29
  * Set of simple rsh specific commands like nick, nick?, history and rmhistory
@@ -89,10 +90,14 @@ Variable | Description
89
90
  ## The .rshrc
90
91
  `.rshrc` is the configuration file for rsh and it is located in your home directory. It is created when you first start rsh and you can modify it to suit your needs. A more detailed .rshrc is found in the the [rsh github repo](https://github.com/isene/rsh) - you can drop this into your home dir if you like. Set the basic environment variables like this:
91
92
  ```
92
- @editor = "vim"
93
+ ENV["EDITOR"] = "vim"
94
+ ENV["MANPAGER"] = "vim +MANPAGER -"
95
+ ```
96
+ Also, a special variable for better LS_COLOR setup:
97
+ ```
93
98
  @lscolors = "/home/geir/.local/share/lscolors.sh"
94
99
  ```
95
- The `@editor` sets your editor of choice. The `@lscolors` points to a file that sets your LS_COLORS variable. Use [my extended LS_COLORS setup](https://github.com/isene/LS_COLORS) to make this really fancy.
100
+ Point `@lscolors` to a file that sets your LS_COLORS variable. Use [my extended LS_COLORS setup](https://github.com/isene/LS_COLORS) to make this really fancy.
96
101
 
97
102
  You can add any Ruby code to your .rshrc.
98
103
 
data/bin/rsh CHANGED
@@ -14,7 +14,7 @@
14
14
  # for any damages resulting from its use. Further, I am under no
15
15
  # obligation to maintain or extend this software. It is provided
16
16
  # on an 'as is' basis without any expressed or implied warranty.
17
- @version = "0.19"
17
+ @version = "0.21"
18
18
 
19
19
  # MODULES, CLASSES AND EXTENSIONS
20
20
  class String # Add coloring to strings (with escaping for Readline)
@@ -145,8 +145,10 @@ end
145
145
  * Tab completions for nicks, system commands, command switches and dirs/files
146
146
  * Tab completion presents matches in a list to pick from
147
147
  * When you start to write a command, rsh will suggest the first match in the history and
148
- present that in "toned down" letters - press the arrow right key to accept the suggestion.
149
- * History with editing, search and repeat a history command (with `!`)
148
+ present that in "toned down" letters - press the arrow right key to accept the suggestion
149
+ * Writing a partial command and pressing `UP` will search history for matches.
150
+ Go down/up in the list and press `TAB` or `ENTER` to accept or `Ctrl-G` to discard
151
+ * History with editing, search and repeat a history command (with `!`)
150
152
  * Config file (.rshrc) updates on exit (with Ctrl-d) or not (with Ctrl-c)
151
153
  * Set of simple rsh specific commands like nick, nick?, history and rmhistory
152
154
  * rsh specific commands and full set of Ruby commands available via :<command>
@@ -278,17 +280,22 @@ def getstr # A custom Readline-like function
278
280
  @c.row(1)
279
281
  @c.clear_screen_down
280
282
  when 'UP' # Go up in history
281
- if lift
282
- @history.unshift("")
283
- @history[0] = @history[@stk].dup
284
- @stk += 1
285
- end
286
- unless @stk >= @history.length - 1
287
- @stk += 1
288
- @history[0] = @history[@stk].dup
289
- @pos = @history[0].length
283
+ if @stk == 0 and @history[0].length > 0
284
+ @tabsearch = @history[0]
285
+ tabbing("hist")
286
+ else
287
+ if lift
288
+ @history.unshift("")
289
+ @history[0] = @history[@stk].dup
290
+ @stk += 1
291
+ end
292
+ unless @stk >= @history.length - 1
293
+ @stk += 1
294
+ @history[0] = @history[@stk].dup
295
+ @pos = @history[0].length
296
+ end
297
+ lift = false
290
298
  end
291
- lift = false
292
299
  when 'DOWN' # Go down in history
293
300
  if lift
294
301
  @history.unshift("")
@@ -434,8 +441,11 @@ def tab_hist(str)
434
441
  sel = @history.select {|el| el =~ /#{str}/}
435
442
  sel.delete("")
436
443
  hist = tabselect(sel, true)
437
- @tabsearch = hist if hist
438
- @pos = @tabstr.length + @tabsearch.length if hist
444
+ if hist
445
+ @tabsearch = hist
446
+ @tabstr = ""
447
+ @pos = @tabsearch.length
448
+ end
439
449
  end
440
450
  def tabselect(ary, hist=false) # Let user select from the incoming array
441
451
  ary.uniq!
@@ -599,7 +609,10 @@ begin # Load .rshrc and populate @history
599
609
  trap "SIGINT" do print "\n"; exit end
600
610
  firstrun unless File.exist?(Dir.home+'/.rshrc') # Initial loading - to get history
601
611
  load(Dir.home+'/.rshrc')
602
- ENV["EDITOR"] = @editor
612
+ ENV["SHELL"] = __FILE__
613
+ ENV["TERM"] = "rxvt-unicode-256color"
614
+ ENV["PATH"] ? ENV["PATH"] += ":" : ENV["PATH"] = ""
615
+ ENV["PATH"] += "/home/#{@user}/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
603
616
  if File.exist?(@lscolors)
604
617
  ls = File.read(@lscolors)
605
618
  ls.sub!(/export.*/, '')
@@ -676,7 +689,7 @@ loop do
676
689
  res = `fzf`.chomp
677
690
  Dir.chdir(File.dirname(res))
678
691
  else
679
- if File.exist?(@cmd)
692
+ if File.exist?(@cmd) and not File.executable?(@cmd)
680
693
  if File.read(@cmd).force_encoding("UTF-8").valid_encoding?
681
694
  system("#{ENV['EDITOR']} #{@cmd}") # Try open with user's editor
682
695
  else
@@ -687,7 +700,7 @@ loop do
687
700
  end
688
701
  end
689
702
  elsif system(@cmd) # Try execute the command
690
- else puts "No such command: #{@cmd}"
703
+ else puts "No such command or nick: #{@cmd}"
691
704
  end
692
705
  end
693
706
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-shell
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.19'
4
+ version: '0.21'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geir Isene
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-12 00:00:00.000000000 Z
11
+ date: 2023-06-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: 'A shell written in Ruby with extensive tab completions, aliases/nicks,
14
14
  history, syntax highlighting, theming and more. In continual development. New in
15
- 0.19: Added environment variables to .rshrc (@editor and @lscolors) and prettified
16
- tab completions for command switches/options.'
15
+ 0.20: Better history search - write a partial command and press UP to get matches
16
+ in history.'
17
17
  email: g@isene.com
18
18
  executables:
19
19
  - rsh