ruby-shell 0.9 → 0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rshrc +16 -4
- data/README.md +19 -9
- data/bin/rsh +72 -5
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37f126a017a54cab294467b035635ce6992f4ae1d67befcd7d4a33882929be5a
|
4
|
+
data.tar.gz: 7210fde457362b3a08e793e62ecf27059e244f514bd77f7aaf8f980c47974826
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5690e8bed0c4efbcf3194e8a2d5e1cdfa5e339c26cee90281818e6c7d35a4b0ce3c64dbe769b67fc86ff89220304598a15a8f56844c179376ca4813b2baafa71
|
7
|
+
data.tar.gz: 4f0c21b28d1ae2f19cd28d7727e2dce0e8097479188b122092649b49080e60f9210f489155ec2e81b2d7551f3b226f7ee78229abe3814cfc3093140a0c757d38
|
data/.rshrc
CHANGED
@@ -1,12 +1,24 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# vim: set ft=ruby sw=2 sts=2 et :
|
2
|
+
|
3
|
+
# 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
|
+
if @user == "root"
|
7
|
+
@prompt = "#{@user}@#{@node}".c(160) + ":".c(255) + " #{Dir.pwd}/".c(196) + " ".c(7)
|
8
|
+
else
|
9
|
+
@prompt = "#{@user}@#{@node}".c(46) + ":".c(255) + " #{Dir.pwd}/".c(196) + " ".c(7)
|
10
|
+
end
|
11
|
+
|
12
|
+
# THEME
|
5
13
|
@c_prompt = 196 # Color for basic prompt
|
6
14
|
@c_cmd = 48 # Color for valid command
|
7
15
|
@c_nick = 51 # Color for matching nick
|
8
16
|
@c_gnick = 87 # Color for matching gnick
|
9
17
|
@c_path = 208 # Color for valid path
|
18
|
+
@c_switch = 148 # Color for switches/options
|
10
19
|
@c_tabselect = 207 # Color for selected tabcompleted item
|
11
20
|
@c_taboption = 244 # Color for unselected tabcompleted item
|
21
|
+
@c_stamp = 244 # Color for time stamp/command
|
12
22
|
|
23
|
+
# UPDATED ON CTRL-D EXIT
|
24
|
+
@nick = {"ls"=>"ls --color -F"}
|
data/README.md
CHANGED
@@ -15,18 +15,28 @@ Clone this repo and drop `rsh` into your preferred bin directory. Drop `.rshrc`
|
|
15
15
|
Or simply `gem install ruby-shell`.
|
16
16
|
|
17
17
|
# Features
|
18
|
-
* Aliases (called
|
18
|
+
* Aliases (called nicks in rsh) - both for commands and general nicks
|
19
19
|
* Syntax highlighting, matching nicks, system commands and valid dirs/files
|
20
20
|
* Tab completions for nicks, system commands, command switches and dirs/files
|
21
21
|
* Tab completion presents matches in a list to pick from
|
22
|
-
* When you start to write a command, rsh will suggest the first match in the
|
23
|
-
|
24
|
-
|
25
|
-
*
|
26
|
-
*
|
27
|
-
*
|
28
|
-
|
29
|
-
|
22
|
+
* 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.
|
23
|
+
* History with editing, search
|
24
|
+
* Config file (.rshrc) updates on exit (with Ctrl-d) or not (with Ctrl-c)
|
25
|
+
* Set of simple rsh specific commands like nick, nick?, history and rmhistory
|
26
|
+
* rsh specific commands and full set of Ruby commands available via :<command>
|
27
|
+
* All colors are themeable in .rshrc (see github link for possibilities)
|
28
|
+
|
29
|
+
Special functions/integrations:
|
30
|
+
* Use `r` to launch rtfm (https://github.com/isene/RTFM) - if you have it installed
|
31
|
+
* Use `f` to launch fzf (https://github.com/junegunn/fzf) - if you have it installed
|
32
|
+
* Use `=` followed by xrpn commands separated by commas (https://github.com/isene/xrpn)
|
33
|
+
* Use `:` followed by a Ruby expression to access the whole world of Ruby
|
34
|
+
|
35
|
+
Special commands:
|
36
|
+
* `:nick 'll = ls -l'` to make a command alias (ll) point to a command (ls -l)
|
37
|
+
* `:gnick 'h = /home/me'` to make a general alias (h) point to something (/home/me)
|
38
|
+
* `:nick?` will list all command nicks and general nicks (you can edit your nicks in .rshrc)
|
39
|
+
* `:history` will list the command history, while `:rmhistory` will delete the history
|
30
40
|
|
31
41
|
## Nicks
|
32
42
|
Add command nicks (aliases) with `:nick "some_nick = some_command"`, e.g. `:nick "ls = ls --color"`. Add general nicks that will substitute anything on a command line (not just commands) like this `:gnick "some_gnick = some_command"`, e.g. `:gnick "x = /home/user/somewhere"`. List (g)nicks with `:nick?`. Remove a nick with `:nick "-some_command"`, e.g. `:nick "-ls"` to remove an `ls` nick. Same for gnicks.
|
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.
|
17
|
+
@version = "0.10"
|
18
18
|
|
19
19
|
# MODULES, CLASSES AND EXTENSIONS
|
20
20
|
class String # Add coloring to strings (with escaping for Readline)
|
@@ -130,6 +130,68 @@ begin # Initialization
|
|
130
130
|
end
|
131
131
|
|
132
132
|
# GENERIC FUNCTIONS
|
133
|
+
def firstrun
|
134
|
+
@firstrun = <<~FIRSTRUN
|
135
|
+
Hello #{@user}, welcome to rsh - the Ruby SHell.
|
136
|
+
|
137
|
+
rsh does not attempt to compete with the grand old shells like bash and zsh.
|
138
|
+
It serves the specific needs and wants of its author. If you like it, then feel free
|
139
|
+
to ask for more or different features here: https://github.com/isene/rsh. Features:
|
140
|
+
|
141
|
+
* Aliases (called nicks in rsh) - both for commands and general nicks
|
142
|
+
* Syntax highlighting, matching nicks, system commands and valid dirs/files
|
143
|
+
* Tab completions for nicks, system commands, command switches and dirs/files
|
144
|
+
* Tab completion presents matches in a list to pick from
|
145
|
+
* When you start to write a command, rsh will suggest the first match in the history and
|
146
|
+
present that in "toned down" letters - press the arrow right key to accept the suggestion.
|
147
|
+
* History with editing, search
|
148
|
+
* Config file (.rshrc) updates on exit (with Ctrl-d) or not (with Ctrl-c)
|
149
|
+
* Set of simple rsh specific commands like nick, nick?, history and rmhistory
|
150
|
+
* rsh specific commands and full set of Ruby commands available via :<command>
|
151
|
+
* All colors are themeable in .rshrc (see github link for possibilities)
|
152
|
+
|
153
|
+
Special functions/integrations:
|
154
|
+
* Use `r` to launch rtfm (https://github.com/isene/RTFM) - if you have it installed
|
155
|
+
* Use `f` to launch fzf (https://github.com/junegunn/fzf) - if you have it installed
|
156
|
+
* Use `=` followed by xrpn commands separated by commas (https://github.com/isene/xrpn)
|
157
|
+
* Use `:` followed by a Ruby expression to access the whole world of Ruby
|
158
|
+
Special commands:
|
159
|
+
* `:nick 'll = ls -l'` to make a command alias (ll) point to a command (ls -l)
|
160
|
+
* `:gnick 'h = /home/me'` to make a general alias (h) point to something (/home/me)
|
161
|
+
* `:nick?` will list all command nicks and general nicks (you can edit your nicks in .rshrc)
|
162
|
+
* `:history` will list the command history, while `:rmhistory` will delete the history
|
163
|
+
|
164
|
+
Since there is no rsh configuration file (.rshrc), I will help you set it up to suit your needs.
|
165
|
+
FIRSTRUN
|
166
|
+
|
167
|
+
puts @firstrun
|
168
|
+
puts "The prompt you see now is the very basic rsh prompt: "
|
169
|
+
print "#{@prompt} (press ENTER)"
|
170
|
+
STDIN.gets
|
171
|
+
puts "I will now change the prompt into something more useful."
|
172
|
+
puts "Feel free to amend the prompt in your .rshrc."
|
173
|
+
rc = <<~RSHRC
|
174
|
+
# PROMPT
|
175
|
+
# The numbers in parenthesis are 256 color codes (the '.c()' is a String extention
|
176
|
+
# to color text in the terminal. Add '.b' for bold and '.i' for italics.
|
177
|
+
@prompt = "\#{@user}@\#{@node}".c(46) + ":".c(255) + " \#{Dir.pwd}/".c(196) + " ".c(7)
|
178
|
+
|
179
|
+
# THEME
|
180
|
+
@c_prompt = 196 # Color for basic prompt
|
181
|
+
@c_cmd = 48 # Color for valid command
|
182
|
+
@c_nick = 51 # Color for matching nick
|
183
|
+
@c_gnick = 87 # Color for matching gnick
|
184
|
+
@c_path = 208 # Color for valid path
|
185
|
+
@c_switch = 148 # Color for switches/options
|
186
|
+
@c_tabselect = 207 # Color for selected tabcompleted item
|
187
|
+
@c_taboption = 244 # Color for unselected tabcompleted item
|
188
|
+
@c_stamp = 244 # Color for time stamp/command
|
189
|
+
|
190
|
+
@nick = {"ls"=>"ls --color -F"}
|
191
|
+
RSHRC
|
192
|
+
File.write(Dir.home+'/.rshrc', rc)
|
193
|
+
|
194
|
+
end
|
133
195
|
def getchr # Process key presses
|
134
196
|
c = STDIN.getch
|
135
197
|
case c
|
@@ -487,7 +549,8 @@ end
|
|
487
549
|
# INITIAL SETUP
|
488
550
|
begin # Load .rshrc and populate @history
|
489
551
|
trap "SIGINT" do print "\n"; exit end
|
490
|
-
|
552
|
+
firstrun unless File.exist?(Dir.home+'/.rshrc') # Initial loading - to get history
|
553
|
+
load(Dir.home+'/.rshrc')
|
491
554
|
@c = Cursor # Initiate @c as Cursor
|
492
555
|
@c.save # Get max row & col
|
493
556
|
@c.row(8000)
|
@@ -510,9 +573,13 @@ loop do
|
|
510
573
|
@cmd = "ls" if @cmd == "" # Default to ls when no command is given
|
511
574
|
print "\n"; @c.clear_screen_down
|
512
575
|
if @cmd == "r" # Integration with rtfm (https://github.com/isene/RTFM)
|
513
|
-
|
514
|
-
|
515
|
-
|
576
|
+
t = Time.now
|
577
|
+
t0 = t.nsec.to_s
|
578
|
+
tf = "/tmp/.rshpwd" + t0
|
579
|
+
File.write(tf, Dir.pwd)
|
580
|
+
system("rtfm #{tf}")
|
581
|
+
Dir.chdir(File.read(tf))
|
582
|
+
File.delete(tf)
|
516
583
|
next
|
517
584
|
end
|
518
585
|
@cmd = "echo \"#{@cmd[1...]},prx,off\" | xrpn" if @cmd =~ /^\=/ # Integration with xrpn (https://github.com/isene/xrpn)
|
metadata
CHANGED
@@ -1,19 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-shell
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.10'
|
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-
|
11
|
+
date: 2023-06-03 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.
|
16
|
-
a command - press the right arrow key to accept.'
|
15
|
+
0.10: Added introduction and creation of .rshrc on first run. Improved rtfm integration.'
|
17
16
|
email: g@isene.com
|
18
17
|
executables:
|
19
18
|
- rsh
|