mysh 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +95 -28
- data/lib/mysh.rb +13 -39
- data/lib/mysh/binding_wrapper.rb +21 -0
- data/lib/mysh/exceptions.rb +4 -0
- data/lib/mysh/expression.rb +11 -4
- data/lib/mysh/external_ruby.rb +20 -7
- data/lib/mysh/globalize.rb +18 -0
- data/lib/mysh/handlebars.rb +0 -3
- data/lib/mysh/init.rb +26 -0
- data/lib/mysh/internal/action.rb +7 -2
- data/lib/mysh/internal/action_pool.rb +9 -4
- data/lib/mysh/internal/actions/command_line.rb +56 -0
- data/lib/mysh/internal/actions/command_line/debug.rb +39 -0
- data/lib/mysh/internal/actions/command_line/init.rb +50 -0
- data/lib/mysh/internal/actions/command_line/load.rb +25 -0
- data/lib/mysh/internal/actions/command_line/post_prompt.rb +44 -0
- data/lib/mysh/internal/actions/command_line/pre_prompt.rb +44 -0
- data/lib/mysh/internal/actions/command_line/prompt.rb +42 -0
- data/lib/mysh/internal/actions/command_line/quit.rb +19 -0
- data/lib/mysh/internal/actions/command_line/usage.rb +23 -0
- data/lib/mysh/internal/actions/comment.rb +20 -0
- data/lib/mysh/internal/actions/elapsed.rb +27 -0
- data/lib/mysh/internal/actions/exit.rb +2 -3
- data/lib/mysh/internal/actions/gls.rb +1 -1
- data/lib/mysh/internal/actions/help/expr.txt +6 -9
- data/lib/mysh/internal/actions/help/quick.txt +6 -0
- data/lib/mysh/internal/actions/help/sub_help.rb +1 -0
- data/lib/mysh/internal/actions/help/usage.txt +8 -0
- data/lib/mysh/internal/actions/help/vars.txt +2 -2
- data/lib/mysh/internal/actions/load.rb +42 -0
- data/lib/mysh/internal/actions/quit.rb +18 -0
- data/lib/mysh/internal/actions/say.rb +20 -0
- data/lib/mysh/internal/actions/show/env.rb +13 -11
- data/lib/mysh/internal/actions/type.rb +4 -3
- data/lib/mysh/internal/actions/vars.rb +5 -5
- data/lib/mysh/internal/manage.rb +1 -1
- data/lib/mysh/process.rb +52 -0
- data/lib/mysh/quick.rb +3 -1
- data/lib/mysh/shell_variables.rb +0 -1
- data/lib/mysh/sources/console.rb +44 -0
- data/lib/mysh/{user_input → sources}/parse.rb +1 -1
- data/lib/mysh/{user_input/smart_source.rb → sources/smart_auto_complete.rb} +1 -1
- data/lib/mysh/sources/string.rb +33 -0
- data/lib/mysh/user_input.rb +14 -30
- data/lib/mysh/version.rb +1 -1
- data/samples/load.rb +6 -0
- data/samples/script.mysh +11 -0
- data/samples/sleep.rb +6 -0
- data/samples/sleep.txt +2 -0
- data/tests/my_shell_tests.rb +6 -4
- metadata +30 -5
- data/lib/mysh/shell_variables/globalize.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7927b9f18a9a450e85b27f329ef62a9cc4dc212b
|
4
|
+
data.tar.gz: d058babe1aadabcb1b63bb5eaa9af689f2674ab5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40c991266f6c8b9185d2c635ba496cd3c6ba593744efa299cd088767f03f3be63400b05fafc1a6db31567e447a7fa21fddc9144476b564b85b0eaea7a6902398
|
7
|
+
data.tar.gz: 96f671dec8eaba3798c5bd807c54ae681c588f69c9b530cda545af70e3c9fff8f0f5481018d3d065cefa7ec9ef26ce89be26c0de9702ea94525baba8dd91fa37
|
data/README.md
CHANGED
@@ -47,29 +47,68 @@ The mysh gem includes a simple executable called mysh. The template for running
|
|
47
47
|
the mysh is:
|
48
48
|
|
49
49
|
```
|
50
|
-
mysh <
|
50
|
+
mysh <options>
|
51
51
|
```
|
52
52
|
|
53
|
-
Where
|
54
|
-
|
55
|
-
|
53
|
+
Where the available options are:
|
54
|
+
|
55
|
+
Option | Short Form | Description
|
56
|
+
---------------------|-------------|---------------------------
|
57
|
+
--debug | -d | Turn on mysh debugging.
|
58
|
+
--no-debug | -nd | Turn off mysh debugging.
|
59
|
+
--help | -? -h | Display mysh usage info and exit.
|
60
|
+
--init filename | -i filename | Initialize mysh by loading the specified file.
|
61
|
+
--no-init | -ni | Do not load a file to initialize mysh.
|
62
|
+
--load filename | -l filename | Load the specified file into the mysh.
|
63
|
+
--post-prompt "str" | -pp "str" | Set the mysh line continuation prompt to "str".
|
64
|
+
--no-post-prompt | -npp | Turn off mysh line continuation prompting.
|
65
|
+
--pre-prompt "str" | -pr "str" | Set the mysh pre prompt to "str".
|
66
|
+
--no-pre-prompt | -npr | Turn off mysh pre prompting.
|
67
|
+
--prompt "str" | -p "str" | Set the mysh prompt to "str".
|
68
|
+
--no-prompt | -np | Turn off mysh prompting.
|
69
|
+
--quit | | Quit out of the mysh program.
|
70
|
+
|
71
|
+
<br>When mysh is run, the user is presented with a command prompt:
|
56
72
|
|
57
73
|
```
|
58
74
|
$ mysh
|
59
75
|
/cygdrive/c/Sites/mysh
|
60
76
|
mysh>
|
61
|
-
|
62
77
|
```
|
78
|
+
|
63
79
|
Now the user (that's you) may enter commands that hopefully increase the level
|
64
80
|
of awesome coolness in the known universe. Entropy does not take vacations so
|
65
81
|
hop to it! :-)
|
66
82
|
|
83
|
+
Now that we've launched mysh, what exactly does it do? This can be summarized
|
84
|
+
with just two words: Boot and REPL.
|
85
|
+
|
86
|
+
###Boot
|
87
|
+
|
88
|
+
When mysh starts up, it, like most programs must first get itself initialized
|
89
|
+
and acclimated to its environment. The boot/initialization process of mysh is
|
90
|
+
somewhat modeled after (well if I'm honest, more like inspired by) that of the
|
91
|
+
famous bash shell. On startup:
|
92
|
+
|
93
|
+
1. Process pre-boot options. Some command line options are processed early.
|
94
|
+
These are --help, -h, -?, --init, -i, --no-init, -ni, and --quit. See above
|
95
|
+
for details on these.
|
96
|
+
2. Try to load and execute the mysh init file. There are two possible files
|
97
|
+
for this role. They are the ~/mysh_init.mysh and ~/mysh_init.rb files. If
|
98
|
+
both files should be present, the .mysh file is processed and the .rb is
|
99
|
+
ignored. NOTE: If an init file should be specified with the --init (-i)
|
100
|
+
option, or disabled with the --no-init (-ni) option, this step is skipped.
|
101
|
+
3. The rest of the command line options are processed at this time. Again,
|
102
|
+
see above for details.
|
103
|
+
|
104
|
+
|
67
105
|
###REPL
|
68
106
|
|
69
|
-
Now for a little more detail
|
70
|
-
called REPL. This stands for Read Eval
|
71
|
-
|
72
|
-
to understand each of these four
|
107
|
+
Now for a little more detail about what happens after booting up. The mysh
|
108
|
+
program is built around a design pattern called REPL. This stands for Read Eval
|
109
|
+
Print and Loop and is used in may utilities like irb, pry and the rails
|
110
|
+
console. To better use mysh, it is good to understand each of these four
|
111
|
+
operating steps.
|
73
112
|
|
74
113
|
####READ
|
75
114
|
|
@@ -126,8 +165,10 @@ be taken for the input. The four types are:
|
|
126
165
|
character in the input. These signature characters are:
|
127
166
|
* ! to access the mysh command history buffer. For more information see
|
128
167
|
Command History below.
|
168
|
+
* \# a comment. Performs no operation.
|
129
169
|
* $ to access or update mysh variables. For more information see Shell
|
130
170
|
Variables below.
|
171
|
+
* % to execute a command and then display the elapsed execution time.
|
131
172
|
* = to evaluate an expression of Ruby code. For more information see Ruby
|
132
173
|
Expressions below.
|
133
174
|
* ? to access the mysh help subsystem. For more information see Shell Help
|
@@ -137,10 +178,11 @@ character in the input. These signature characters are:
|
|
137
178
|
|
138
179
|
2. Internal Commands - These commands are recognized by having the first word
|
139
180
|
in the input match a word stored in an internal hash of command actions. For
|
140
|
-
more information see
|
141
|
-
3. External
|
142
|
-
word in the input have
|
143
|
-
|
181
|
+
more information see Internal Commands below.
|
182
|
+
3. External mysh files - These commands are recognized by having the first
|
183
|
+
word in the input have a recognized extension. That is (*.rb) of a ruby source
|
184
|
+
file, (*.mysh) for a mysh script file and (*.txt) for a text file. For more
|
185
|
+
information see External Mysh Commands below.
|
144
186
|
4. External Commands - Any command not matching any of the above is sent to the
|
145
187
|
system shell for execution. For more information see External Commands below.
|
146
188
|
|
@@ -222,14 +264,11 @@ baz yes
|
|
222
264
|
|
223
265
|
The processing of input continues (looping) until it doesn't. This occurs when
|
224
266
|
a command to stop looping is entered or the mini_readline gem signals
|
225
|
-
end-of-input condition. The commands that do this are:
|
267
|
+
end-of-input condition. The (internal) commands that do this are:
|
226
268
|
|
227
269
|
* exit - exit the current mysh level.
|
228
270
|
* quit - terminate the mysh program.
|
229
271
|
|
230
|
-
Work-in-progress - mysh only has one level at this time so these two commands
|
231
|
-
do exactly the same thing... for now!
|
232
|
-
|
233
272
|
An end-of-input condition is signaled by the user by entering Ctrl-z (in
|
234
273
|
windows) or Alt-z (in Linux/Mac). See the mini_readline gem (link above) for
|
235
274
|
more information on the keyboard mappings used by mysh.
|
@@ -268,7 +307,7 @@ those cases, simply end the expression with a '#' character. For example:
|
|
268
307
|
|
269
308
|
Finally, it may be that it is desired to embed braces into a text file or
|
270
309
|
the command line. In that case precede the brace with a backslash character
|
271
|
-
like:
|
310
|
+
like: \\{ or \\}
|
272
311
|
|
273
312
|
### Command History
|
274
313
|
|
@@ -305,9 +344,7 @@ To display the name/value of a variable, use:
|
|
305
344
|
|
306
345
|
$name
|
307
346
|
|
308
|
-
To display all variable names/values use
|
309
|
-
|
310
|
-
$
|
347
|
+
To display all variable names/values use just enter a single $ sign.
|
311
348
|
|
312
349
|
As an escapement, the string $$ maps to a single $.
|
313
350
|
|
@@ -319,7 +356,7 @@ $d | The current date.
|
|
319
356
|
$date_fmt | The format for the date: "%Y-%m-%d"
|
320
357
|
$debug | Does the shell display additional debugging info (true/false)
|
321
358
|
$h | The home folder's path
|
322
|
-
$post_prompt| The prompt used when a line is continued with a trailing \\ character.
|
359
|
+
$post_prompt| The prompt used when a line is continued with a trailing \\ character. By default this is the same as the normal prompt.
|
323
360
|
$pre_prompt | A prompt string displayed before the actual command prompt. Delete the pre_prompt variable to disable pre-prompting.
|
324
361
|
$prompt | The user prompt.
|
325
362
|
$t | The current time.
|
@@ -434,6 +471,7 @@ math | Help on math functions.
|
|
434
471
|
quick | Help on quick commands.
|
435
472
|
ruby | Help on the show ruby command.
|
436
473
|
show | Help on the show command.
|
474
|
+
usage | Help on mysh usage options.
|
437
475
|
{{ | Help on mysh handlebars.
|
438
476
|
|
439
477
|
|
@@ -500,17 +538,42 @@ Command | Description
|
|
500
538
|
cd {dir} | Change directory to the optional dir parameter and then display the current working directory.
|
501
539
|
exit | Exit mysh.
|
502
540
|
gls {-l} {mask}| Display the loaded ruby gems. Use optional -l for a more details and a mask to limit output.
|
503
|
-
history {index}|
|
541
|
+
history {index}| The mysh command history. If an index is specified, get the command with that index value.
|
542
|
+
load file | Load a ruby program, mysh script, or text file into the mysh environment.
|
504
543
|
pwd | Display the current working directory.
|
505
544
|
quit | Exit mysh.
|
506
|
-
|
545
|
+
say <stuff> | Display the text in the command arguments.
|
546
|
+
type file | Display a text file with support for optional embedded handlebars and mysh variables.
|
507
547
|
vls {mask} | Display the loaded modules, matching the optional mask, that have version info.
|
508
548
|
|
509
|
-
|
549
|
+
Note that the load command applied to a mysh script file acts exactly the same
|
550
|
+
as if the script file were executed directly from the command line. As a
|
551
|
+
result of this:
|
510
552
|
|
511
|
-
|
512
|
-
|
513
|
-
|
553
|
+
```
|
554
|
+
myfile.mysh
|
555
|
+
load myfile.mysh
|
556
|
+
```
|
557
|
+
do the same thing. In addition:
|
558
|
+
```
|
559
|
+
myfile.txt
|
560
|
+
load myfile.txt
|
561
|
+
type myfile.txt
|
562
|
+
```
|
563
|
+
are also all equivalent. See External Mysh Commands below for more info.
|
564
|
+
|
565
|
+
### External Mysh Commands
|
566
|
+
|
567
|
+
These commands are recognized by having the first word in the input have a
|
568
|
+
recognized extension. These are:
|
569
|
+
|
570
|
+
Extension | Description
|
571
|
+
---------------|----------------------------------------------------
|
572
|
+
.rb | A ruby source file executed via a new instance of the compiler.
|
573
|
+
.mysh | A mysh script file. Commands in this file are executed as if the user typed them in at the console.
|
574
|
+
.txt | A text file. The file (with any embedded code and veriables) is displayed on the console.
|
575
|
+
|
576
|
+
Here is a sample session with an external Ruby program.
|
514
577
|
|
515
578
|
```
|
516
579
|
mysh>$debug = on
|
@@ -544,6 +607,10 @@ require "mysh"
|
|
544
607
|
Mysh.run
|
545
608
|
```
|
546
609
|
|
610
|
+
The run command takes an optional array of command line style options similar
|
611
|
+
in nature to the ARGV ruby constant. If omitted, mysh is run with no optional
|
612
|
+
parameters. These parameters are documented in the Usage section above.
|
613
|
+
|
547
614
|
#### Adding New Commands
|
548
615
|
|
549
616
|
It is possible to add new internal commands to the mysh CLI. This may done
|
data/lib/mysh.rb
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
require 'English'
|
6
6
|
require 'in_array'
|
7
7
|
|
8
|
+
require_relative 'mysh/exceptions'
|
9
|
+
require_relative 'mysh/binding_wrapper'
|
8
10
|
require_relative 'mysh/user_input'
|
9
11
|
require_relative 'mysh/quick'
|
10
12
|
require_relative 'mysh/expression'
|
@@ -13,55 +15,27 @@ require_relative 'mysh/external_ruby'
|
|
13
15
|
require_relative 'mysh/handlebars'
|
14
16
|
require_relative 'mysh/shell_variables'
|
15
17
|
require_relative 'mysh/pre_processor'
|
18
|
+
require_relative 'mysh/process'
|
19
|
+
require_relative 'mysh/globalize'
|
20
|
+
require_relative 'mysh/init'
|
21
|
+
|
16
22
|
require_relative 'mysh/version'
|
17
23
|
|
18
24
|
#The Mysh (MY SHell) module. A container for mysh and its functionality.
|
19
25
|
module Mysh
|
20
26
|
|
21
27
|
#The actual shell method.
|
22
|
-
def self.run
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
execute_a_command(get_command)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
#Common initialization tasks.
|
31
|
-
def self.setup
|
32
|
-
reset_host
|
33
|
-
init_input
|
34
|
-
@mysh_running = true
|
35
|
-
end
|
36
|
-
|
37
|
-
#Execute a single line of input and handle exceptions.
|
38
|
-
def self.execute_a_command(str)
|
39
|
-
try_execute_command(str)
|
40
|
-
|
41
|
-
rescue MiniReadlineEOI
|
42
|
-
@mysh_running = false
|
43
|
-
|
44
|
-
rescue Interrupt, StandardError, ScriptError => err
|
45
|
-
puts "Error #{err.class}: #{err}"
|
46
|
-
puts err.backtrace if MNV[:debug]
|
47
|
-
end
|
48
|
-
|
49
|
-
#Try to execute a single line of input. Does not handle exceptions.
|
50
|
-
def self.try_execute_command(input)
|
51
|
-
unless input.start_with?("$")
|
52
|
-
input = input.preprocess
|
53
|
-
end
|
54
|
-
|
55
|
-
puts "=> #{input}" if MNV[:debug]
|
28
|
+
def self.run(args=[])
|
29
|
+
process_command_args(args, :pre_boot)
|
30
|
+
mysh_load_init
|
31
|
+
process_command_args(args, :post_boot)
|
56
32
|
|
57
|
-
|
58
|
-
try_execute_internal_command(input) ||
|
59
|
-
try_execute_external_ruby(input) ||
|
60
|
-
system(input)
|
33
|
+
process_console
|
61
34
|
end
|
62
35
|
|
36
|
+
reset_host
|
63
37
|
end
|
64
38
|
|
65
39
|
if __FILE__ == $0
|
66
|
-
Mysh.run #Run a shell if this file is run directly.
|
40
|
+
Mysh.run(ARGV) #Run a shell if this file is run directly.
|
67
41
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
#* mysh/internal/binding_wrapper.rb -- An action compatible wrapper for a binding.
|
4
|
+
module Mysh
|
5
|
+
|
6
|
+
#* mysh/internal/binding_wrapper.rb -- An action compatible wrapper for a binding.
|
7
|
+
class BindingWrapper
|
8
|
+
|
9
|
+
#Setup a binding wrapper
|
10
|
+
def initialize(binding)
|
11
|
+
@exec_binding = binding
|
12
|
+
end
|
13
|
+
|
14
|
+
#Evaluate the string in the wrapped context.
|
15
|
+
def mysh_eval(str)
|
16
|
+
@exec_binding.eval(str)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
data/lib/mysh/expression.rb
CHANGED
@@ -20,7 +20,7 @@ module Mysh
|
|
20
20
|
#Set up a new execution environment
|
21
21
|
def initialize
|
22
22
|
$mysh_exec_result = nil
|
23
|
-
$mysh_exec_binding =
|
23
|
+
$mysh_exec_binding = mysh_binding
|
24
24
|
end
|
25
25
|
|
26
26
|
#Do the actual work of executing an expression.
|
@@ -36,6 +36,13 @@ module Mysh
|
|
36
36
|
"exec_host"
|
37
37
|
end
|
38
38
|
|
39
|
+
#Evaluate the string in the my shell context.
|
40
|
+
def mysh_eval(str)
|
41
|
+
$mysh_exec_binding.eval(str)
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
39
46
|
#Get the previous result
|
40
47
|
def result
|
41
48
|
$mysh_exec_result
|
@@ -47,9 +54,9 @@ module Mysh
|
|
47
54
|
nil
|
48
55
|
end
|
49
56
|
|
50
|
-
#
|
51
|
-
def
|
52
|
-
|
57
|
+
#Create a binding for mysh to execute expressions in.
|
58
|
+
def mysh_binding
|
59
|
+
binding
|
53
60
|
end
|
54
61
|
end
|
55
62
|
|
data/lib/mysh/external_ruby.rb
CHANGED
@@ -4,16 +4,29 @@
|
|
4
4
|
module Mysh
|
5
5
|
|
6
6
|
#Try to execute as a Ruby program.
|
7
|
+
#<br>Endemic Code Smells
|
8
|
+
#* :reek:TooManyStatements
|
7
9
|
def self.try_execute_external_ruby(str)
|
8
|
-
|
10
|
+
args = parse_args(str.chomp)
|
11
|
+
file_name = args.shift
|
9
12
|
|
10
|
-
if
|
11
|
-
|
12
|
-
puts "=> #{new_command}" if MNV[:debug]
|
13
|
-
system(new_command)
|
14
|
-
:ruby_exec
|
15
|
-
end
|
13
|
+
if (file_name)
|
14
|
+
ext = File.extname(file_name)
|
16
15
|
|
16
|
+
if ext == '.rb'
|
17
|
+
new_command = "#{RbConfig.ruby} #{str}"
|
18
|
+
puts "=> #{new_command}" if MNV[:debug]
|
19
|
+
system(new_command)
|
20
|
+
:ruby_exec
|
21
|
+
elsif ext == '.mysh'
|
22
|
+
Mysh.process_file(file_name)
|
23
|
+
:mysh_script
|
24
|
+
elsif ext == '.txt'
|
25
|
+
exec_host = BindingWrapper.new(binding)
|
26
|
+
show_handlebar_file(file_name, exec_host)
|
27
|
+
:internal
|
28
|
+
end
|
29
|
+
end
|
17
30
|
end
|
18
31
|
|
19
32
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
#Monkey patches for mysh global entities.
|
4
|
+
class Object
|
5
|
+
|
6
|
+
#Make the environment variable store accessible everywhere.
|
7
|
+
MNV = Mysh::MNV
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
#The mysh equivalent of the system method.
|
12
|
+
#<br>Endemic Code Smells
|
13
|
+
#* :reek:UtilityFunction
|
14
|
+
def mysh(str)
|
15
|
+
Mysh.try_execute_command(str)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/lib/mysh/handlebars.rb
CHANGED
@@ -10,9 +10,6 @@ class Object
|
|
10
10
|
#The message receiver is the evaluation host for the handlebar code.
|
11
11
|
def show_handlebar_file(name, evaluator)
|
12
12
|
puts eval_handlebar_file(name, evaluator)
|
13
|
-
rescue Interrupt, StandardError, ScriptError => err
|
14
|
-
puts "Error in file: #{name}\n#{err.class}: #{err}"
|
15
|
-
puts err.backtrace if MNV[:debug]
|
16
13
|
end
|
17
14
|
|
18
15
|
#Expand a file with embedded ruby handlebars.
|
data/lib/mysh/init.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
#* mysh/init.rb -- The mysh init file loader.
|
4
|
+
module Mysh
|
5
|
+
|
6
|
+
#Set the init file used to startup mysh to none so far.
|
7
|
+
$mysh_init_file = nil
|
8
|
+
|
9
|
+
#Perform init phase processing.
|
10
|
+
def self.mysh_load_init
|
11
|
+
|
12
|
+
unless $mysh_init_file || !(home = ENV['HOME'])
|
13
|
+
name_mysh = home + '/mysh_init.mysh'
|
14
|
+
name_rb = home + '/mysh_init.rb'
|
15
|
+
|
16
|
+
if File.file?(name_mysh)
|
17
|
+
process_file($mysh_init_file = name_mysh)
|
18
|
+
elsif File.file?(name_rb)
|
19
|
+
load ($mysh_init_file = name_rb)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
$mysh_init_file = '<none found>' unless $mysh_init_file
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|