mysh 0.6.13 → 0.6.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -0
- data/lib/mysh.rb +1 -0
- data/lib/mysh/command_line/debug.rb +9 -11
- data/lib/mysh/command_line/init.rb +8 -8
- data/lib/mysh/command_line/load.rb +5 -5
- data/lib/mysh/command_line/pause.rb +6 -8
- data/lib/mysh/command_line/post_prompt.rb +10 -12
- data/lib/mysh/command_line/pre_prompt.rb +10 -12
- data/lib/mysh/command_line/prompt.rb +9 -10
- data/lib/mysh/command_line/quit.rb +4 -4
- data/lib/mysh/command_line/usage.rb +4 -4
- data/lib/mysh/globalize.rb +0 -7
- data/lib/mysh/help/vars.txt +2 -2
- data/lib/mysh/internal/cd.rb +2 -2
- data/lib/mysh/internal/comment.rb +2 -2
- data/lib/mysh/internal/elapsed.rb +2 -2
- data/lib/mysh/internal/gls.rb +6 -7
- data/lib/mysh/internal/history.rb +10 -9
- data/lib/mysh/internal/load.rb +2 -2
- data/lib/mysh/internal/mls.rb +2 -2
- data/lib/mysh/internal/pwd.rb +1 -1
- data/lib/mysh/internal/say.rb +1 -1
- data/lib/mysh/internal/type.rb +2 -2
- data/lib/mysh/internal/vars.rb +8 -8
- data/lib/mysh/shell_variables/shell_variable_keeper.rb +6 -7
- data/lib/mysh/shell_variables/shell_variable_store.rb +13 -14
- data/lib/mysh/sources/parse.rb +7 -10
- data/lib/mysh/sources/smart_auto_complete.rb +5 -5
- data/lib/mysh/sources/string.rb +6 -6
- data/lib/mysh/version.rb +1 -1
- data/mysh.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51fa58dda45adaa517ecd9276c4b0296d5ceab32
|
4
|
+
data.tar.gz: bc6edc6e19c25f8196ac5d5b4002a015cd4e8ead
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43ed6d9f89c760a1355d22ea689a17a46788f19f204b9d7a9213efcfae685d6cbf040eb25cf5ddc2f0b3815bfaeffd1d1106d81cc6168b594bdbe80bf70e9694
|
7
|
+
data.tar.gz: 41b3eae7f8d4b3aa4758157c888eb8da22e4d94f7ea240fbd051bf97e0c5cdb7e2751078bd2a36a8676ce5ab7d673bbf21f8013c2235c93b1b8c92ac4822bb8c
|
data/README.md
CHANGED
@@ -984,3 +984,14 @@ calling attention to some aspect that could use some TLC or a suggestion or an
|
|
984
984
|
idea or a comment.
|
985
985
|
|
986
986
|
This is a low pressure environment. All are welcome!
|
987
|
+
|
988
|
+
## License
|
989
|
+
|
990
|
+
The gem is available as open source under the terms of the
|
991
|
+
[MIT License](./LICENSE.txt).
|
992
|
+
|
993
|
+
## Code of Conduct
|
994
|
+
|
995
|
+
Everyone interacting in the fully_freeze project’s codebases, issue trackers,
|
996
|
+
chat rooms and mailing lists is expected to follow the
|
997
|
+
[code of conduct](./CODE_OF_CONDUCT.md).
|
data/lib/mysh.rb
CHANGED
@@ -1,38 +1,36 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh help command debug.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh help command debug.
|
7
7
|
class DebugOption < CommandOption
|
8
8
|
|
9
|
-
#Execute the help command line option.
|
10
|
-
|
11
|
-
#* :reek:UtilityFunction
|
9
|
+
# Execute the help command line option.
|
10
|
+
# Endemic Code Smells :reek:UtilityFunction
|
12
11
|
def post_boot(_args)
|
13
12
|
MNV[:debug] = "on"
|
14
13
|
end
|
15
14
|
|
16
15
|
end
|
17
16
|
|
18
|
-
#Add the debug command line option to the library.
|
17
|
+
# Add the debug command line option to the library.
|
19
18
|
desc = 'Turn on mysh debugging.'
|
20
19
|
COMMAND_LINE.add_action(DebugOption.new('--debug', desc))
|
21
20
|
COMMAND_LINE.add_action(DebugOption.new('-d', desc))
|
22
21
|
|
23
|
-
|
22
|
+
# The mysh help command no debug.
|
24
23
|
class NoDebugOption < CommandOption
|
25
24
|
|
26
|
-
#Execute the help command line option.
|
27
|
-
|
28
|
-
#* :reek:UtilityFunction
|
25
|
+
# Execute the help command line option.
|
26
|
+
# Endemic Code Smells :reek:UtilityFunction
|
29
27
|
def post_boot(_args)
|
30
28
|
MNV[:debug] = "off"
|
31
29
|
end
|
32
30
|
|
33
31
|
end
|
34
32
|
|
35
|
-
#Add the debug command line option to the library.
|
33
|
+
# Add the debug command line option to the library.
|
36
34
|
desc = 'Turn off mysh debugging.'
|
37
35
|
COMMAND_LINE.add_action(NoDebugOption.new('--no-debug', desc))
|
38
36
|
COMMAND_LINE.add_action(NoDebugOption.new('-nd', desc))
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh init and no-init commands.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh init command.
|
7
7
|
class InitOption < CommandOption
|
8
8
|
|
9
|
-
#Skip over the argument for pre_boot.
|
9
|
+
# Skip over the argument for pre_boot.
|
10
10
|
def pre_boot(read_point)
|
11
11
|
file_name = get_arg(read_point).to_host_spec
|
12
12
|
|
@@ -19,23 +19,23 @@ module Mysh
|
|
19
19
|
mysh "load #{file_name}"
|
20
20
|
end
|
21
21
|
|
22
|
-
#Execute the init command line option.
|
22
|
+
# Execute the init command line option.
|
23
23
|
def post_boot(read_point)
|
24
24
|
get_arg(read_point)
|
25
25
|
end
|
26
26
|
|
27
27
|
end
|
28
28
|
|
29
|
-
#Add the init command line option to the library.
|
29
|
+
# Add the init command line option to the library.
|
30
30
|
desc = 'Initialize mysh by loading the specified file.'
|
31
31
|
COMMAND_LINE.add_action(InitOption.new('--init filename', desc))
|
32
32
|
COMMAND_LINE.add_action(InitOption.new('-i filename', desc))
|
33
33
|
|
34
34
|
|
35
|
-
|
35
|
+
# The mysh no init command.
|
36
36
|
class NoInitOption < CommandOption
|
37
37
|
|
38
|
-
#Skip over the argument for pre_boot.
|
38
|
+
# Skip over the argument for pre_boot.
|
39
39
|
def pre_boot(_args)
|
40
40
|
fail "The mysh is already initialized." if $mysh_init_file
|
41
41
|
$mysh_init_file = "<none>"
|
@@ -43,7 +43,7 @@ module Mysh
|
|
43
43
|
|
44
44
|
end
|
45
45
|
|
46
|
-
#Add the no init command line option to the library.
|
46
|
+
# Add the no init command line option to the library.
|
47
47
|
desc = 'Do not load a file to initialize mysh.'
|
48
48
|
COMMAND_LINE.add_action(NoInitOption.new('--no-init', desc))
|
49
49
|
COMMAND_LINE.add_action(NoInitOption.new('-ni', desc))
|
@@ -1,24 +1,24 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh load command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh load command.
|
7
7
|
class LoadOption < CommandOption
|
8
8
|
|
9
|
-
#Skip over the argument for pre_boot.
|
9
|
+
# Skip over the argument for pre_boot.
|
10
10
|
def pre_boot(read_point)
|
11
11
|
get_arg(read_point)
|
12
12
|
end
|
13
13
|
|
14
|
-
#Execute the load command line option.
|
14
|
+
# Execute the load command line option.
|
15
15
|
def post_boot(read_point)
|
16
16
|
mysh "load #{get_arg(read_point).to_host_spec}"
|
17
17
|
end
|
18
18
|
|
19
19
|
end
|
20
20
|
|
21
|
-
#Add the load command line option to the library.
|
21
|
+
# Add the load command line option to the library.
|
22
22
|
desc = 'Load the specified file into the mysh.'
|
23
23
|
COMMAND_LINE.add_action(LoadOption.new('--load filename', desc))
|
24
24
|
COMMAND_LINE.add_action(LoadOption.new('-l filename', desc))
|
@@ -5,9 +5,8 @@ module Mysh
|
|
5
5
|
# The page pause option.
|
6
6
|
class PauseOption < CommandOption
|
7
7
|
|
8
|
-
#Execute the help command line option.
|
9
|
-
|
10
|
-
#* :reek:UtilityFunction
|
8
|
+
# Execute the help command line option.
|
9
|
+
# Endemic Code Smells :reek:UtilityFunction
|
11
10
|
def post_boot(_args)
|
12
11
|
MNV[:page_pause] = "on"
|
13
12
|
end
|
@@ -18,16 +17,15 @@ module Mysh
|
|
18
17
|
|
19
18
|
end
|
20
19
|
|
21
|
-
#Add the pause command line option to the library.
|
20
|
+
# Add the pause command line option to the library.
|
22
21
|
desc = 'Turn on page pauses.'
|
23
22
|
COMMAND_LINE.add_action(PauseOption.new('--pause', desc))
|
24
23
|
|
25
24
|
# The no page pause option.
|
26
25
|
class NoPauseOption < CommandOption
|
27
26
|
|
28
|
-
#Execute the help command line option.
|
29
|
-
|
30
|
-
#* :reek:UtilityFunction
|
27
|
+
# Execute the help command line option.
|
28
|
+
# Endemic Code Smells :reek:UtilityFunction
|
31
29
|
def post_boot(_args)
|
32
30
|
MNV[:page_pause] = "off"
|
33
31
|
end
|
@@ -38,7 +36,7 @@ module Mysh
|
|
38
36
|
|
39
37
|
end
|
40
38
|
|
41
|
-
#Add the no pause command line option to the library.
|
39
|
+
# Add the no pause command line option to the library.
|
42
40
|
desc = 'Turn off page pauses.'
|
43
41
|
COMMAND_LINE.add_action(NoPauseOption.new('--no-pause', desc))
|
44
42
|
end
|
@@ -1,43 +1,41 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh post prompt command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh post prompt command.
|
7
7
|
class PostpromptOption < CommandOption
|
8
8
|
|
9
|
-
#Skip over the argument for pre_boot.
|
9
|
+
# Skip over the argument for pre_boot.
|
10
10
|
def pre_boot(read_point)
|
11
11
|
get_arg(read_point)
|
12
12
|
end
|
13
13
|
|
14
|
-
#Execute the prompt command line option.
|
15
|
-
|
16
|
-
#* :reek:UtilityFunction
|
14
|
+
# Execute the prompt command line option.
|
15
|
+
# Endemic Code Smells :reek:UtilityFunction
|
17
16
|
def post_boot(read_point)
|
18
17
|
MNV[:post_prompt] = get_arg(read_point)
|
19
18
|
end
|
20
19
|
|
21
20
|
end
|
22
21
|
|
23
|
-
#Add the post prompt command line option to the library.
|
22
|
+
# Add the post prompt command line option to the library.
|
24
23
|
desc = 'Set the mysh line continuation prompt to "str".'
|
25
24
|
COMMAND_LINE.add_action(PostpromptOption.new('--post-prompt "str"', desc))
|
26
25
|
COMMAND_LINE.add_action(PostpromptOption.new('-pp "str"', desc))
|
27
26
|
|
28
|
-
|
27
|
+
# The mysh command no post prompt.
|
29
28
|
class NoPostpromptOption < CommandOption
|
30
29
|
|
31
|
-
#Execute the no post prompt command line option.
|
32
|
-
|
33
|
-
#* :reek:UtilityFunction
|
30
|
+
# Execute the no post prompt command line option.
|
31
|
+
# Endemic Code Smells :reek:UtilityFunction
|
34
32
|
def post_boot(_args)
|
35
33
|
MNV[:post_prompt] = ""
|
36
34
|
end
|
37
35
|
|
38
36
|
end
|
39
37
|
|
40
|
-
#Add the prompt command line option to the library.
|
38
|
+
# Add the prompt command line option to the library.
|
41
39
|
desc = 'Turn off mysh post prompting.'
|
42
40
|
COMMAND_LINE.add_action(NoPostpromptOption.new('--no-post-prompt', desc))
|
43
41
|
COMMAND_LINE.add_action(NoPostpromptOption.new('-npp', desc))
|
@@ -1,43 +1,41 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh pre_prompt command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh pre_prompt command.
|
7
7
|
class PrepromptOption < CommandOption
|
8
8
|
|
9
|
-
#Skip over the argument for pre_boot.
|
9
|
+
# Skip over the argument for pre_boot.
|
10
10
|
def pre_boot(read_point)
|
11
11
|
get_arg(read_point)
|
12
12
|
end
|
13
13
|
|
14
|
-
#Execute the prompt command line option.
|
15
|
-
|
16
|
-
#* :reek:UtilityFunction
|
14
|
+
# Execute the prompt command line option.
|
15
|
+
# Endemic Code Smells :reek:UtilityFunction
|
17
16
|
def post_boot(read_point)
|
18
17
|
MNV[:pre_prompt] = get_arg(read_point)
|
19
18
|
end
|
20
19
|
|
21
20
|
end
|
22
21
|
|
23
|
-
#Add the pre prompt command line option to the library.
|
22
|
+
# Add the pre prompt command line option to the library.
|
24
23
|
desc = 'Set the mysh pre prompt to "str".'
|
25
24
|
COMMAND_LINE.add_action(PrepromptOption.new('--pre-prompt "str"', desc))
|
26
25
|
COMMAND_LINE.add_action(PrepromptOption.new('-pr "str"', desc))
|
27
26
|
|
28
|
-
|
27
|
+
# The mysh command no pre_prompt.
|
29
28
|
class NoPrepromptOption < CommandOption
|
30
29
|
|
31
|
-
#Execute the no pre_prompt command line option.
|
32
|
-
|
33
|
-
#* :reek:UtilityFunction
|
30
|
+
# Execute the no pre_prompt command line option.
|
31
|
+
# Endemic Code Smells :reek:UtilityFunction
|
34
32
|
def post_boot(_args)
|
35
33
|
MNV[:pre_prompt] = ""
|
36
34
|
end
|
37
35
|
|
38
36
|
end
|
39
37
|
|
40
|
-
#Add the prompt command line option to the library.
|
38
|
+
# Add the prompt command line option to the library.
|
41
39
|
desc = 'Turn off mysh pre prompting.'
|
42
40
|
COMMAND_LINE.add_action(NoPrepromptOption.new('--no-pre-prompt', desc))
|
43
41
|
COMMAND_LINE.add_action(NoPrepromptOption.new('-npr', desc))
|
@@ -1,41 +1,40 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh prompt command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh prompt command.
|
7
7
|
class PromptOption < CommandOption
|
8
8
|
|
9
|
-
#Skip over the argument for pre_boot.
|
9
|
+
# Skip over the argument for pre_boot.
|
10
10
|
def pre_boot(read_point)
|
11
11
|
get_arg(read_point)
|
12
12
|
end
|
13
13
|
|
14
|
-
#Execute the prompt command line option.
|
14
|
+
# Execute the prompt command line option.
|
15
15
|
def post_boot(read_point)
|
16
16
|
MNV[:prompt] = get_arg(read_point)
|
17
17
|
end
|
18
18
|
|
19
19
|
end
|
20
20
|
|
21
|
-
#Add the prompt command line option to the library.
|
21
|
+
# Add the prompt command line option to the library.
|
22
22
|
desc = 'Set the mysh prompt to "str".'
|
23
23
|
COMMAND_LINE.add_action(PromptOption.new('--prompt "str"', desc))
|
24
24
|
COMMAND_LINE.add_action(PromptOption.new('-p "str"', desc))
|
25
25
|
|
26
|
-
|
26
|
+
# The mysh prompt command no prompt.
|
27
27
|
class NoPromptOption < CommandOption
|
28
28
|
|
29
|
-
#Execute the no prompt command line option.
|
30
|
-
|
31
|
-
#* :reek:UtilityFunction
|
29
|
+
# Execute the no prompt command line option.
|
30
|
+
# Endemic Code Smells :reek:UtilityFunction
|
32
31
|
def post_boot(_args)
|
33
32
|
MNV[:prompt] = ""
|
34
33
|
end
|
35
34
|
|
36
35
|
end
|
37
36
|
|
38
|
-
#Add the prompt command line option to the library.
|
37
|
+
# Add the prompt command line option to the library.
|
39
38
|
desc = 'Turn off mysh prompting.'
|
40
39
|
COMMAND_LINE.add_action(NoPromptOption.new('--no-prompt', desc))
|
41
40
|
COMMAND_LINE.add_action(NoPromptOption.new('-np', desc))
|
@@ -1,19 +1,19 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh quit command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh quit command.
|
7
7
|
class QuitOption < CommandOption
|
8
8
|
|
9
|
-
#Execute the quit command line option.
|
9
|
+
# Execute the quit command line option.
|
10
10
|
def post_boot(_args)
|
11
11
|
exit
|
12
12
|
end
|
13
13
|
|
14
14
|
end
|
15
15
|
|
16
|
-
#Add the quit command line option to the library.
|
16
|
+
# Add the quit command line option to the library.
|
17
17
|
desc = "Exit a nested mysh file or command."
|
18
18
|
COMMAND_LINE.add_action(QuitOption.new('--quit', desc))
|
19
19
|
end
|
@@ -1,19 +1,19 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh help command usage.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh help command usage.
|
7
7
|
class UsageOption < CommandOption
|
8
8
|
|
9
|
-
#Execute the help command line option. (Punt to error handler with no msg)
|
9
|
+
# Execute the help command line option. (Punt to error handler with no msg)
|
10
10
|
def pre_boot(_args)
|
11
11
|
raise MyshUsage
|
12
12
|
end
|
13
13
|
|
14
14
|
end
|
15
15
|
|
16
|
-
#Add the usage command line option to the library.
|
16
|
+
# Add the usage command line option to the library.
|
17
17
|
desc = 'Display mysh usage info and exit.'
|
18
18
|
|
19
19
|
USAGE = UsageOption.new('--help', desc)
|
data/lib/mysh/globalize.rb
CHANGED
@@ -19,13 +19,6 @@ class Object
|
|
19
19
|
raise MyshExit
|
20
20
|
end
|
21
21
|
|
22
|
-
# Run some code with no wuccas.
|
23
|
-
def insouciant
|
24
|
-
yield
|
25
|
-
rescue => err
|
26
|
-
err.to_s
|
27
|
-
end
|
28
|
-
|
29
22
|
# Get the latest version for the named gem. Patched code.
|
30
23
|
def latest_version_for(name, fetcher=nil)
|
31
24
|
dependency = Gem::Dependency.new(name)
|
data/lib/mysh/help/vars.txt
CHANGED
@@ -4,7 +4,7 @@ In mysh, variables are kept that control the behavior of the shell. This simple
|
|
4
4
|
command is used to set, delete, and display these variables. The basic method
|
5
5
|
for setting a variable is:
|
6
6
|
|
7
|
-
set
|
7
|
+
set \$name=value
|
8
8
|
|
9
9
|
Where:
|
10
10
|
* name is a word matching the regex: /[a-z][a-z0-9_]*/. Lower case only.
|
@@ -14,7 +14,7 @@ To erase the value of a variable, use: set $$name=
|
|
14
14
|
To display the name/value of a variable, use: set $$name
|
15
15
|
To display all variable names/values use: set
|
16
16
|
|
17
|
-
As an escapement, the
|
17
|
+
As an escapement, the strings $$$$ or \\$ map to a single $$.
|
18
18
|
|
19
19
|
Some variables that are used in mysh are:
|
20
20
|
|
data/lib/mysh/internal/cd.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh internal cd command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#Add the cd command to the library.
|
6
|
+
# Add the cd command to the library.
|
7
7
|
desc = 'Change directory to the optional <dir> parameter ' +
|
8
8
|
'or display the current working directory.'
|
9
9
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# A mysh internal comment.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#Add comments to the library.
|
6
|
+
# Add comments to the library.
|
7
7
|
desc = 'A mysh comment. No action taken'
|
8
8
|
action = lambda {|_input| :internal}
|
9
9
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh internal elapsed command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#Add the elapsed commands to the library.
|
6
|
+
# Add the elapsed commands to the library.
|
7
7
|
desc = 'Execute a command and then display the elapsed time. See ?% for more.'
|
8
8
|
|
9
9
|
action = lambda do |input|
|
data/lib/mysh/internal/gls.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh gls (gem ls) command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh gls (gem ls) command.
|
7
7
|
class GlsCommand < Action
|
8
8
|
|
9
|
-
#Set up this command.
|
9
|
+
# Set up this command.
|
10
10
|
def initialize(*args)
|
11
11
|
super
|
12
12
|
@report = @mask = @specs = nil
|
13
13
|
end
|
14
14
|
|
15
|
-
#Execute the gls command.
|
15
|
+
# Execute the gls command.
|
16
16
|
def process_command(input)
|
17
17
|
process_args(input.args)
|
18
18
|
gather_gems
|
@@ -57,9 +57,8 @@ module Mysh
|
|
57
57
|
report.puts_format_output_bullets
|
58
58
|
end
|
59
59
|
|
60
|
-
#Get detailed information on a gem specification.
|
61
|
-
|
62
|
-
#* :reek:UtilityFunction
|
60
|
+
# Get detailed information on a gem specification.
|
61
|
+
# Endemic Code Smells :reek:UtilityFunction
|
63
62
|
def info(spec)
|
64
63
|
[["name", spec.name],
|
65
64
|
["version", spec.version],
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh internal history command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh internal history command.
|
7
7
|
class HistoryCommand < Action
|
8
8
|
|
9
9
|
#Set up this command.
|
@@ -12,11 +12,11 @@ module Mysh
|
|
12
12
|
@args = @history = nil
|
13
13
|
end
|
14
14
|
|
15
|
-
#Execute the history command.
|
15
|
+
# Execute the history command.
|
16
16
|
def process_command(input)
|
17
17
|
@args, @history = input.args, Mysh.input.history
|
18
18
|
|
19
|
-
#The history command should not be part of the history.
|
19
|
+
# The history command should not be part of the history.
|
20
20
|
@history.pop
|
21
21
|
|
22
22
|
pull_index || clear_history || show_history
|
@@ -24,7 +24,7 @@ module Mysh
|
|
24
24
|
|
25
25
|
private
|
26
26
|
|
27
|
-
#Deal with history index arguments
|
27
|
+
# Deal with history index arguments
|
28
28
|
def pull_index
|
29
29
|
index = @args[0].to_i
|
30
30
|
|
@@ -35,7 +35,7 @@ module Mysh
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
#Clear the history buffer.
|
38
|
+
# Clear the history buffer.
|
39
39
|
def clear_history
|
40
40
|
if @args[0] == 'clear'
|
41
41
|
@history.clear
|
@@ -44,7 +44,7 @@ module Mysh
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
#Just show the history.
|
47
|
+
# Just show the history.
|
48
48
|
def show_history
|
49
49
|
pattern = Regexp.new(@args[0] || /./)
|
50
50
|
|
@@ -55,10 +55,11 @@ module Mysh
|
|
55
55
|
|
56
56
|
end
|
57
57
|
|
58
|
-
#Add the history commands to the library.
|
58
|
+
# Add the history commands to the library.
|
59
59
|
desc = 'Display the mysh command history. See ?! for more.'
|
60
60
|
COMMANDS.add_action(HistoryCommand.new('history <arg>', desc))
|
61
|
-
|
61
|
+
|
62
|
+
# The history command action object.
|
62
63
|
HISTORY_COMMAND = HistoryCommand.new('!<arg>', desc)
|
63
64
|
COMMANDS.add_action(HISTORY_COMMAND)
|
64
65
|
end
|
data/lib/mysh/internal/load.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh load command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#Add the load command to the library.
|
6
|
+
# Add the load command to the library.
|
7
7
|
desc = "Load ruby programs, mysh scripts, " +
|
8
8
|
"or text files into the mysh environment."
|
9
9
|
|
data/lib/mysh/internal/mls.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
require 'vls'
|
4
4
|
|
5
|
-
|
5
|
+
# The mysh module ls command.
|
6
6
|
module Mysh
|
7
7
|
|
8
|
-
#Add the mls command to the library.
|
8
|
+
# Add the mls command to the library.
|
9
9
|
desc = 'Display modules with version info. See ?mls for more.'
|
10
10
|
|
11
11
|
action = lambda do |input|
|
data/lib/mysh/internal/pwd.rb
CHANGED
data/lib/mysh/internal/say.rb
CHANGED
data/lib/mysh/internal/type.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh type command.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#Add the type command to the library.
|
6
|
+
# Add the type command to the library.
|
7
7
|
desc = 'Display one or more text files with optional support for ' +
|
8
8
|
'embedded handlebars and shell variables. See ?type for more.'
|
9
9
|
|
data/lib/mysh/internal/vars.rb
CHANGED
@@ -1,24 +1,24 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh internal variables commands.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh internal variable commands.
|
7
7
|
class VarsCommand < Action
|
8
8
|
|
9
|
-
#The mysh variable parsing regex.
|
9
|
+
# The mysh variable parsing regex.
|
10
10
|
VAR_EXP = %r{(?<name> [a-z][a-z0-9_]*){0}
|
11
11
|
(?<equals> =){0}
|
12
12
|
(?<value> \S.*){0}
|
13
13
|
\$ (\g<name> \s* (\g<equals> \s* \g<value>?)?)?}x
|
14
14
|
|
15
|
-
#Setup an internal action.
|
15
|
+
# Setup an internal action.
|
16
16
|
def initialize(name, description)
|
17
17
|
@var_name = @equals = @value = nil
|
18
18
|
super(name, description)
|
19
19
|
end
|
20
20
|
|
21
|
-
#Execute a command against the internal mysh variables.
|
21
|
+
# Execute a command against the internal mysh variables.
|
22
22
|
def process_command(input)
|
23
23
|
if (match = VAR_EXP.match(input.raw_body))
|
24
24
|
@var_name, @equals, @value = match[:name], match[:equals], match[:value]
|
@@ -30,7 +30,7 @@ module Mysh
|
|
30
30
|
:internal
|
31
31
|
end
|
32
32
|
|
33
|
-
#Do the actual work here.
|
33
|
+
# Do the actual work here.
|
34
34
|
def do_command
|
35
35
|
sym = @var_name.to_sym if @var_name
|
36
36
|
|
@@ -45,7 +45,7 @@ module Mysh
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
#Display all variables neatly.
|
48
|
+
# Display all variables neatly.
|
49
49
|
def show_all_values
|
50
50
|
puts (MNV.keys - ['$'.to_sym])
|
51
51
|
.sort
|
@@ -55,7 +55,7 @@ module Mysh
|
|
55
55
|
|
56
56
|
end
|
57
57
|
|
58
|
-
#The
|
58
|
+
# The set command action object.
|
59
59
|
desc = 'Set/query mysh variables. See ?set for more.'
|
60
60
|
COMMANDS.add_action(VarsCommand.new('set <$name>=value', desc))
|
61
61
|
end
|
@@ -1,17 +1,17 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The keeper of mysh values.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#The keeper of mysh variable values.
|
6
|
+
# The keeper of mysh variable values.
|
7
7
|
class Keeper
|
8
8
|
|
9
|
-
#Set up this variable
|
9
|
+
# Set up this variable
|
10
10
|
def initialize(value="")
|
11
11
|
@value = value
|
12
12
|
end
|
13
13
|
|
14
|
-
#Get the value of this variable.
|
14
|
+
# Get the value of this variable.
|
15
15
|
def get_value(loop_check={})
|
16
16
|
my_id = self.object_id
|
17
17
|
fail "Mysh variable looping error." if loop_check[my_id]
|
@@ -21,12 +21,12 @@ module Mysh
|
|
21
21
|
loop_check.delete(my_id)
|
22
22
|
end
|
23
23
|
|
24
|
-
#Get the source code of this variable.
|
24
|
+
# Get the source code of this variable.
|
25
25
|
def get_source
|
26
26
|
@value
|
27
27
|
end
|
28
28
|
|
29
|
-
#Set the value of this variable.
|
29
|
+
# Set the value of this variable.
|
30
30
|
def set_value(value)
|
31
31
|
@value = value
|
32
32
|
end
|
@@ -34,4 +34,3 @@ module Mysh
|
|
34
34
|
end
|
35
35
|
|
36
36
|
end
|
37
|
-
|
@@ -1,19 +1,18 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# Storage for mysh variables.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#The holder of mysh variables.
|
6
|
+
# The holder of mysh variables.
|
7
7
|
module MNV
|
8
|
-
#Set up the storage hash.
|
8
|
+
# Set up the storage hash.
|
9
9
|
@store = Hash.new { |_hash, _key| Keeper.new }
|
10
10
|
|
11
|
-
#The shared loop checker for programmatic access.
|
11
|
+
# The shared loop checker for programmatic access.
|
12
12
|
@loop_check = nil
|
13
13
|
|
14
|
-
#Get the value of a variable.
|
15
|
-
|
16
|
-
#* :reek:TooManyStatements
|
14
|
+
# Get the value of a variable.
|
15
|
+
# Endemic Code Smells :reek:TooManyStatements
|
17
16
|
def self.[](index)
|
18
17
|
keeper = get_keeper(index)
|
19
18
|
|
@@ -28,7 +27,7 @@ module Mysh
|
|
28
27
|
end
|
29
28
|
end
|
30
29
|
|
31
|
-
#Set the value of a variable.
|
30
|
+
# Set the value of a variable.
|
32
31
|
def self.[]=(index, value)
|
33
32
|
unless value.empty?
|
34
33
|
keeper = get_keeper(index)
|
@@ -41,32 +40,32 @@ module Mysh
|
|
41
40
|
value
|
42
41
|
end
|
43
42
|
|
44
|
-
#Get the value keeper of a variable.
|
43
|
+
# Get the value keeper of a variable.
|
45
44
|
def self.get_keeper(index)
|
46
45
|
@store[index]
|
47
46
|
end
|
48
47
|
|
49
|
-
#Set the value keeper of a variable.
|
48
|
+
# Set the value keeper of a variable.
|
50
49
|
def self.set_keeper(index, keeper)
|
51
50
|
@store[index] = keeper
|
52
51
|
end
|
53
52
|
|
54
|
-
#Delete the value keeper of a variable.
|
53
|
+
# Delete the value keeper of a variable.
|
55
54
|
def self.delete_keeper(index)
|
56
55
|
@store.delete(index)
|
57
56
|
end
|
58
57
|
|
59
|
-
#Get the source code of a variable.
|
58
|
+
# Get the source code of a variable.
|
60
59
|
def self.get_source(index)
|
61
60
|
@store[index].get_source
|
62
61
|
end
|
63
62
|
|
64
|
-
#Does this entry exist?
|
63
|
+
# Does this entry exist?
|
65
64
|
def self.key?(index)
|
66
65
|
@store.key?(index)
|
67
66
|
end
|
68
67
|
|
69
|
-
#Get all the keys
|
68
|
+
# Get all the keys
|
70
69
|
def self.keys
|
71
70
|
@store.keys
|
72
71
|
end
|
data/lib/mysh/sources/parse.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# mysh general parser.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#Parse a string into components.
|
7
|
-
|
8
|
-
#* :reek:TooManyStatements
|
6
|
+
# Parse a string into components.
|
7
|
+
# Endemic Code Smells :reek:TooManyStatements
|
9
8
|
def self.parse_args(input)
|
10
9
|
result, read_point = [], input.chars.each
|
11
10
|
|
@@ -24,9 +23,8 @@ module Mysh
|
|
24
23
|
|
25
24
|
private
|
26
25
|
|
27
|
-
#Get a string parameter.
|
28
|
-
|
29
|
-
#* :reek:TooManyStatements
|
26
|
+
# Get a string parameter.
|
27
|
+
# Endemic Code Smells :reek:TooManyStatements
|
30
28
|
def self.get_string(read_point)
|
31
29
|
result = ""
|
32
30
|
|
@@ -41,9 +39,8 @@ module Mysh
|
|
41
39
|
[result]
|
42
40
|
end
|
43
41
|
|
44
|
-
#Get a parameter.
|
45
|
-
|
46
|
-
#* :reek:TooManyStatements
|
42
|
+
# Get a parameter.
|
43
|
+
# Endemic Code Smells :reek:TooManyStatements
|
47
44
|
def self.get_parameter(first_char, read_point)
|
48
45
|
result = first_char
|
49
46
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# An adaptive source for auto-complete.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# An array as the source for auto-complete.
|
7
7
|
class SmartSource
|
8
8
|
|
9
|
-
#Create a new file/folder auto-data source. NOP
|
9
|
+
# Create a new file/folder auto-data source. NOP
|
10
10
|
def initialize(options)
|
11
11
|
@prefix = options[:prefix]
|
12
12
|
@auto_source = MiniReadline::AutoFileSource.new(options)
|
@@ -14,7 +14,7 @@ module Mysh
|
|
14
14
|
@active_source = nil
|
15
15
|
end
|
16
16
|
|
17
|
-
#Construct a new data list for auto-complete
|
17
|
+
# Construct a new data list for auto-complete
|
18
18
|
def rebuild(str)
|
19
19
|
if /(?<=\s|^)\$[a-z][a-z0-9_]*\z/ =~ str
|
20
20
|
sym = $MATCH[1..-1].to_sym
|
@@ -26,7 +26,7 @@ module Mysh
|
|
26
26
|
@active_source.rebuild(str)
|
27
27
|
end
|
28
28
|
|
29
|
-
#Get the next string for auto-complete
|
29
|
+
# Get the next string for auto-complete
|
30
30
|
def next
|
31
31
|
@active_source ? @active_source.next : @str
|
32
32
|
end
|
data/lib/mysh/sources/string.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh string command source.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#A wrapper for a string with mysh commands.
|
6
|
+
# A wrapper for a string with mysh commands.
|
7
7
|
class StringSource
|
8
8
|
|
9
|
-
#Setup the string source.
|
9
|
+
# Setup the string source.
|
10
10
|
def initialize(str)
|
11
11
|
@eoi = false
|
12
12
|
@read_pt = str.lines.each
|
13
13
|
end
|
14
14
|
|
15
|
-
#Get the initial line of command input.
|
15
|
+
# Get the initial line of command input.
|
16
16
|
def get_command(_str="")
|
17
17
|
@read_pt.next
|
18
18
|
rescue StopIteration
|
@@ -20,10 +20,10 @@ module Mysh
|
|
20
20
|
"\n"
|
21
21
|
end
|
22
22
|
|
23
|
-
#Set up an alias as these two are identical.
|
23
|
+
# Set up an alias as these two are identical.
|
24
24
|
alias :get_command_extra :get_command
|
25
25
|
|
26
|
-
#Have we reached the end of input?
|
26
|
+
# Have we reached the end of input?
|
27
27
|
def eoi?
|
28
28
|
@eoi
|
29
29
|
end
|
data/lib/mysh/version.rb
CHANGED
data/mysh.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mysh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Camilleri
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -178,6 +178,20 @@ dependencies:
|
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: 0.1.8
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: insouciant
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 0.1.0
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 0.1.0
|
181
195
|
description: mysh -- a Ruby inspired command shell for CLI and application use.
|
182
196
|
email:
|
183
197
|
- peter.c.camilleri@gmail.com
|