naksh 0.2.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.
Files changed (137) hide show
  1. data/AUTHORS +1 -0
  2. data/COPYING +674 -0
  3. data/COPYING-DOCS +15 -0
  4. data/README.md +45 -0
  5. data/Rakefile +129 -0
  6. data/TODO +19 -0
  7. data/bin/naksh +2 -0
  8. data/data/default.mo +0 -0
  9. data/data/default.po +16 -0
  10. data/data/default2.mo +0 -0
  11. data/data/default2.po +27 -0
  12. data/data/starter.pot +29 -0
  13. data/docs/bash_flow.dia +0 -0
  14. data/docs/gtk_manual.txt +13 -0
  15. data/docs/master_plan.dia +0 -0
  16. data/docs/master_plan.png +0 -0
  17. data/docs/master_plan.svg +74 -0
  18. data/docs/master_plan.svgz +0 -0
  19. data/docs/userguide/en/about.xml +42 -0
  20. data/docs/userguide/en/gnu-fdl-1.2.xml +543 -0
  21. data/docs/userguide/en/naksh.xml +881 -0
  22. data/docs/userguide/en/naksh_start_window.png +0 -0
  23. data/docs/userguide/en/old_naksh.xml +180 -0
  24. data/docs/userguide/en/userguide-en.omf +37 -0
  25. data/lib/naksh.rb +165 -0
  26. data/lib/naksh/buffer.rb +153 -0
  27. data/lib/naksh/command_handling.rb +117 -0
  28. data/lib/naksh/commands/bash/README +2 -0
  29. data/lib/naksh/commands/bash/echo.nkc.rb +50 -0
  30. data/lib/naksh/commands/bsd.rb +25 -0
  31. data/lib/naksh/commands/dos.rb +25 -0
  32. data/lib/naksh/commands/fuse.rb +25 -0
  33. data/lib/naksh/commands/gnu.rb +30 -0
  34. data/lib/naksh/commands/gnu/README +2 -0
  35. data/lib/naksh/commands/gnu/cat.nkc.rb +50 -0
  36. data/lib/naksh/commands/gnu/cd.nkc.rb +11 -0
  37. data/lib/naksh/commands/gnu/echo.documentation.json +57 -0
  38. data/lib/naksh/commands/gnu/echo.documentation.rb +60 -0
  39. data/lib/naksh/commands/gnu/echo.nkc.rb +52 -0
  40. data/lib/naksh/commands/gnu/ls.nkc.rb +11 -0
  41. data/lib/naksh/commands/gnu/mv.nkc.rb +15 -0
  42. data/lib/naksh/commands/gnu/pwd.nkc.rb +11 -0
  43. data/lib/naksh/commands/naksh/addpath.nkc.rb +15 -0
  44. data/lib/naksh/commands/naksh/broken.nkc.rb +10 -0
  45. data/lib/naksh/commands/naksh/empty.nkc.rb +4 -0
  46. data/lib/naksh/commands/naksh/exit.nkc.rb +10 -0
  47. data/lib/naksh/commands/naksh/help.nkc.rb +21 -0
  48. data/lib/naksh/commands/naksh/man.nkc.rb +8 -0
  49. data/lib/naksh/commands/ruby.rb +31 -0
  50. data/lib/naksh/commands/unix.rb +131 -0
  51. data/lib/naksh/configuration/gconf.rb +51 -0
  52. data/lib/naksh/configuration/hash.rb +38 -0
  53. data/lib/naksh/defaults.rb +40 -0
  54. data/lib/naksh/history.rb +85 -0
  55. data/lib/naksh/interfaces.rb +59 -0
  56. data/lib/naksh/interfaces/fox.rb +49 -0
  57. data/lib/naksh/interfaces/gtk.rb +103 -0
  58. data/lib/naksh/interfaces/gtk/abtwin.rb +53 -0
  59. data/lib/naksh/interfaces/gtk/gnomeapp.rb +31 -0
  60. data/lib/naksh/interfaces/gtk/helpwin.rb +70 -0
  61. data/lib/naksh/interfaces/gtk/io.rb +94 -0
  62. data/lib/naksh/interfaces/gtk/mainwin.rb +56 -0
  63. data/lib/naksh/interfaces/gtk/mainwin/console.rb +121 -0
  64. data/lib/naksh/interfaces/gtk/mainwin/main_menu.rb +143 -0
  65. data/lib/naksh/interfaces/gtk/optwin.rb +78 -0
  66. data/lib/naksh/interfaces/tab.rb +58 -0
  67. data/lib/naksh/interfaces/wxw.rb +75 -0
  68. data/lib/naksh/interfaces/wxw/abtwin.rb +38 -0
  69. data/lib/naksh/interfaces/wxw/helpwin.rb +40 -0
  70. data/lib/naksh/interfaces/wxw/io.rb +61 -0
  71. data/lib/naksh/interfaces/wxw/mainwin.rb +42 -0
  72. data/lib/naksh/interfaces/wxw/mainwin/main_menu.rb +126 -0
  73. data/lib/naksh/interfaces/wxw/mainwin/sessions.rb +49 -0
  74. data/lib/naksh/interfaces/wxw/optwin.rb +37 -0
  75. data/lib/naksh/path_entry.rb +101 -0
  76. data/lib/naksh/regexp.rb +31 -0
  77. data/lib/naksh/session.rb +72 -0
  78. data/lib/naksh/stdlibext.rb +48 -0
  79. data/lib/naksh/syntax.rb +57 -0
  80. data/lib/naksh/syntax/bash.rb +219 -0
  81. data/lib/naksh/syntax/bash/antlr/bottomup.g +24 -0
  82. data/lib/naksh/syntax/bash/antlr/topdown.g +52 -0
  83. data/lib/naksh/syntax/bash/dhaka/evaluator.rb +353 -0
  84. data/lib/naksh/syntax/bash/dhaka/grammar.rb +71 -0
  85. data/lib/naksh/syntax/bash/dhaka/lexer.rb +52 -0
  86. data/lib/naksh/syntax/bash/treetop/bash.treetop +17 -0
  87. data/lib/old/abbr_call.rb +39 -0
  88. data/lib/old/autocomplete.rb +29 -0
  89. data/lib/old/command.rb +106 -0
  90. data/lib/old/command_holder.rb +75 -0
  91. data/lib/old/commands.rb +24 -0
  92. data/lib/old/old_executor.rb +95 -0
  93. data/lib/old/options.rb +31 -0
  94. data/lib/old/rush.rb +113 -0
  95. data/lib/old/sortissimo.rb +205 -0
  96. data/lib/old/systems.rb +25 -0
  97. data/lib/old/systems/ruby.rb +26 -0
  98. data/lib/old/un.rb +240 -0
  99. data/lib/rust/Rakefile +6 -0
  100. data/lib/rust/commands/builtins.rb +46 -0
  101. data/lib/rust/commands/builtins/cd.rb +17 -0
  102. data/lib/rust/commands/builtins/exit.rb +13 -0
  103. data/lib/rust/commands/builtins/help.rb +14 -0
  104. data/lib/rust/commands/builtins/parser.rb +13 -0
  105. data/lib/rust/commands/builtins/pwd.rb +13 -0
  106. data/lib/rust/commands/builtins/type.rb +13 -0
  107. data/lib/rust/commands/commands/ls.rb +13 -0
  108. data/lib/rust/commands/commands/read.rb +13 -0
  109. data/lib/rust/commands/commands/rm.rb +14 -0
  110. data/lib/rust/commands/commands/test.rb +20 -0
  111. data/lib/rust/helpers/array.rb +10 -0
  112. data/lib/rust/helpers/command_center.rb +78 -0
  113. data/lib/rust/helpers/constants.rb +58 -0
  114. data/lib/rust/helpers/io.rb +132 -0
  115. data/lib/rust/helpers/parser.rb +45 -0
  116. data/lib/rust/helpers/rush_control.rb +40 -0
  117. data/lib/rust/helpers/string.rb +50 -0
  118. data/lib/rust/helpers/trollop.rb +475 -0
  119. data/lib/rust/parsers/bash.rb +220 -0
  120. data/lib/rust/parsers/bash/stdlibext.rb +32 -0
  121. data/lib/rust/parsers/ren.rb +57 -0
  122. data/lib/rust/rust.rb +75 -0
  123. data/lib/rust/syntax/command.rb +23 -0
  124. data/lib/rust/syntax/paths.rb +31 -0
  125. data/lib/rust/syntax/pipes.rb +148 -0
  126. data/naksh.gemspec +55 -0
  127. data/test/naksh/arg_parser.rspec.rb +27 -0
  128. data/test/naksh/commands/bash/echo.rspec.rb +32 -0
  129. data/test/naksh/commands/sortlist +127 -0
  130. data/test/naksh/external_command.rspec.rb +46 -0
  131. data/test/naksh/send_error.rspec.rb +60 -0
  132. data/test/naksh/suggest.rspec.rb +38 -0
  133. data/test/naksh/syntax/bash.rspec.rb +69 -0
  134. data/test/naksh/syntax/bash/execute.rspec.rb +51 -0
  135. data/test/naksh/syntax/rspec.rb +63 -0
  136. data/test/run_rspecs.rb +20 -0
  137. metadata +217 -0
@@ -0,0 +1,117 @@
1
+ #!/usr/local/bin/ruby
2
+ # 2011 Mahmut Bulut
3
+
4
+ # This file is part of Naksh.
5
+ #
6
+ # Naksh is free software: you can redistribute it and/or modify
7
+ # it under the terms of the GNU General Public License as published by
8
+ # the Free Software Foundation, either version 3 of the License, or
9
+ # (at your option) any later version.
10
+ #
11
+ # Naksh is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ # GNU General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU General Public License
17
+ # along with Naksh. If not, see <http://www.gnu.org/licenses/>.
18
+
19
+
20
+ class NotExpectedFiletypeError<TypeError
21
+ end
22
+ class CompatibilityError<ArgumentError
23
+ end
24
+ class NoCommandError<StandardError
25
+ include Naksh::NonCriticalError
26
+ end
27
+ class NkcLoadError<LoadError
28
+ include Naksh::NonCriticalError
29
+ end
30
+ #looking through this file, you're going to ask,
31
+ #sooner or later, what is nkc?
32
+ #NKC could be an acronym for Naksh Command,
33
+ #but that's not really important
34
+ #I have chosen to identify these ready-made commands
35
+ #by naming the files **.nkc.rb
36
+ #and generally calling them nkcs
37
+
38
+
39
+ module Naksh
40
+
41
+
42
+ # this is just what you expect it to be,
43
+ # an Array of path entries, see PathEntry
44
+ def Naksh.path
45
+ @path
46
+ end
47
+
48
+
49
+ #this is in case you want to save and swap paths, very useful
50
+ def Naksh.path=(new_path)
51
+ @path=new_path
52
+ end
53
+
54
+
55
+
56
+ #running a command made for us is easy as pie
57
+ def Naksh.run_nkc(location,args)
58
+ begin
59
+ prc=eval(File.new(location.to_s).read)
60
+ rescue Exception=>err
61
+ raise NkcLoadError,_('error in command: %s: `%s\'')%[location.sub(File.join(Naksh.config['/dir'],'lib'),''),err.to_s.sub(/\(eval\):\d+:in\s`run_nkc':\scompile error\s*/,"\n")]
62
+ end
63
+ raise NotExpectedFiletypeError,_("#{location} isn't a compatible NKC") unless prc.kind_of? Proc or not prc.lambda?
64
+ raise CompatibilityError,_(location.to_s+' must be written for a future version of Naksh; it requires too many arguments') unless prc.arity.abs==1
65
+ prc.call(args)
66
+ end
67
+
68
+
69
+ #this is for normal commands you can run from any shell
70
+ def Naksh.run_external_file(location,args)
71
+ $stderr.puts 'external command execution not yet implemented'
72
+ 0
73
+ end
74
+
75
+
76
+ def Naksh.send_command(command,args)
77
+ raise ArgumentError unless command.kind_of? String and args.kind_of? Array
78
+ @path.each do |path_entry|
79
+ case path_entry.type
80
+ when :nkc
81
+ return run_nkc(path_entry.location,args) if path_entry.name==command
82
+ when :external
83
+ return run_external_file(path_entry.location,args) if path_entry.name==command
84
+ when :nkc_dir
85
+ path_entry.location.children.each do |child|
86
+ begin
87
+ return run_nkc(child,args) if (/\A(.+)\.nkc\.rb\z/.match(File.basename(child))[1])==command
88
+ rescue Naksh::NonCriticalError=>error
89
+ Naksh.buffer.clear
90
+ Naksh.interface.err.print((_('Naksh: %s')%[error.to_s])<<"\n")
91
+ return false
92
+ rescue NoMethodError
93
+ end
94
+ end
95
+ when :external_dir
96
+ path_entry.location.children.each do |child|
97
+ return run_external_file(path_entry.location,args) if File.basename(child)==command and File.file? child
98
+ end
99
+ when :mixed_dir
100
+ path_entry.location.children.each do |child|
101
+ md=/\A(.+)\.nkc\.rb\z/.match(File.basename(child))
102
+ if md
103
+ return run_nkc(child,args) if md[1]==command
104
+ else
105
+ return run_external_file(child,args) if File.basename(child)==command and File.file? child
106
+ end
107
+ end
108
+ else
109
+ raise RuntimeError
110
+ end
111
+ end
112
+ raise NoCommandError,_("%s: command not found")%[command]
113
+ end
114
+
115
+ @path = Array.new
116
+
117
+ end
@@ -0,0 +1,2 @@
1
+ This folder (lib/naksh/commands/bash) is for pure GNU Bash builtin clones written as NKC Ruby scripts.
2
+ Documentation for the GNU Bash builtins can be found at <http://www.gnu.org/software/bash/manual/bashref.html#Shell-Builtin-Commands>
@@ -0,0 +1,50 @@
1
+ #!/usr/local/bin/ruby
2
+ # 2011 Mahmut Bulut
3
+ # GPLv3
4
+ # This file is part of Naksh.
5
+
6
+ #http://www.gnu.org/software/bash/manual/bashref.html#index-echo-133
7
+
8
+ lambda do |input|
9
+ allow_escapes=false
10
+ suppress_line=false
11
+ input.collect! do |arg|
12
+ md=/\A\-([eEn]+)\z/.match(arg)
13
+ if md
14
+ md[1].each_byte do |c|
15
+ c=c.chr
16
+ case c
17
+ when 'e'
18
+ allow_escapes=true
19
+ when 'E'
20
+ allow_escapes=false
21
+ when 'n'
22
+ suppress_line=true
23
+ end
24
+ end
25
+ end
26
+ md ? nil : arg
27
+ end
28
+ result=input.compact.join(' ')
29
+ if allow_escapes
30
+ result.gsub! '\\a',"\a"
31
+ result.gsub! '\\b',"\b"
32
+ raise NotImplementedError if /\\c/.match(result)
33
+ result.gsub! '\\e',"\e"
34
+ result.gsub! '\\f',"\f"
35
+ result.gsub! '\\n',"\n"
36
+ result.gsub! '\\r',"\r"
37
+ result.gsub! '\\t',"\t"
38
+ result.gsub! '\\f',"\f"
39
+ result.gsub! '\\\\','\\'
40
+ result.gsub!(/\\0([0-7]{0,3})/) do |match|
41
+ match[2..-1].to_i(8).chr
42
+ end
43
+ result.gsub!(/\\x(\h{1,2})/) do |match|
44
+ match[2..-1].to_i(16).chr
45
+ end
46
+ end
47
+ result<<"\n" unless suppress_line
48
+ Naksh.buffer.print result
49
+ 0
50
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/local/bin/ruby
2
+ # 2011 Mahmut Bulut
3
+
4
+ # This file is part of Naksh.
5
+ #
6
+ # Naksh is free software: you can redistribute it and/or modify
7
+ # it under the terms of the GNU General Public License as published by
8
+ # the Free Software Foundation, either version 3 of the License, or
9
+ # (at your option) any later version.
10
+ #
11
+ # Naksh is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ # GNU General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU General Public License
17
+ # along with Naksh. If not, see <http://www.gnu.org/licenses/>.
18
+
19
+ module Naksh
20
+ module CommandSets
21
+ #all of the commands as implemented in Bsd
22
+ module Bsd
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/local/bin/ruby
2
+ # 2011 Mahmut Bulut
3
+
4
+ # This file is part of Naksh.
5
+ #
6
+ # Naksh is free software: you can redistribute it and/or modify
7
+ # it under the terms of the GNU General Public License as published by
8
+ # the Free Software Foundation, either version 3 of the License, or
9
+ # (at your option) any later version.
10
+ #
11
+ # Naksh is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ # GNU General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU General Public License
17
+ # along with Naksh. If not, see <http://www.gnu.org/licenses/>.
18
+
19
+ module Naksh
20
+ module CommandSets
21
+ #accept DOS commands, why not?, low priority
22
+ module Dos
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/local/bin/ruby
2
+ # 2011 Mahmut Bulut
3
+
4
+ # This file is part of Naksh.
5
+ #
6
+ # Naksh is free software: you can redistribute it and/or modify
7
+ # it under the terms of the GNU General Public License as published by
8
+ # the Free Software Foundation, either version 3 of the License, or
9
+ # (at your option) any later version.
10
+ #
11
+ # Naksh is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ # GNU General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU General Public License
17
+ # along with Naksh. If not, see <http://www.gnu.org/licenses/>.
18
+
19
+ module Naksh
20
+ module CommandSets
21
+ #http://rubyforge.org/projects/fusefs/
22
+ module FuseFS
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,30 @@
1
+ #!/usr/local/bin/ruby
2
+ # 2011 Mahmut Bulut
3
+
4
+ # This file is part of Naksh.
5
+ #
6
+ # Naksh is free software: you can redistribute it and/or modify
7
+ # it under the terms of the GNU General Public License as published by
8
+ # the Free Software Foundation, either version 3 of the License, or
9
+ # (at your option) any later version.
10
+ #
11
+ # Naksh is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ # GNU General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU General Public License
17
+ # along with Naksh. If not, see <http://www.gnu.org/licenses/>.
18
+
19
+ module Naksh
20
+ module CommandSets
21
+ #all of the commands written by GNU
22
+ module Gnu
23
+ def Unix.sort(args=[])
24
+ a=Naksh.argument_parser(args,1..1/0,:b=>:ignore_leading_blanks,:d=>:dictionary_order,:f=>:ignore_case,:g=>:general_numeric_sort,:i=>:ignore_nonprinting,:M=>:month_sort,:n=>:numeric_sort,:r=>:reverse,:C=>:check,:k=>:key,:m=>:merge,:o=>:output,:s=>:stable,:S=>:buffer_size,:t=>:field_separator,:T=>:temporary_directory,:u=>:unique,:a=>:zero_terminated)
25
+ p a
26
+ raise NotImplementedError
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,2 @@
1
+ This folder (lib/naksh/commands/gnu) is for pure GNU core utility clones written as NKC Ruby scripts.
2
+ Documentation for the GNU core utilities can be found at <http://www.gnu.org/software/coreutils/manual>
@@ -0,0 +1,50 @@
1
+ #!/usr/local/bin/ruby
2
+ # 2011 Mahmut Bulut
3
+ # GPLv3
4
+ # This file is part of Naksh.
5
+
6
+ #http://www.gnu.org/software/coreutils/manual/coreutils.html#cat-invocation
7
+
8
+ lambda do |input|
9
+ show_line_endings = false
10
+ show_tabs = false
11
+ show_nonprinting = false
12
+ number_all_lines = false
13
+ number_nonblank_lines = false
14
+ squeeze_blank = false
15
+ input.collect! do |arg|
16
+ raise NotImplementedError
17
+ result=arg
18
+ if arg.start_with? '-'
19
+ case arg
20
+ when '--show-all'
21
+ show_line_endings = true
22
+ show_tabs = true
23
+ show_nonprinting = true
24
+ when '--number'
25
+ number_all_lines = true
26
+ when '--number-nonblank'
27
+ number_nonblank_lines = true
28
+ when '--show-ends'
29
+ show_line_endings = true
30
+ when '--show-nonprinting'
31
+ show_nonprinting = true
32
+ when '--squeeze-blank'
33
+ squeeze_blank = true
34
+ when '--help'
35
+ raise NotImplementedError
36
+ else
37
+ result=nil
38
+ end
39
+ end
40
+ result
41
+ end
42
+ input.compact!
43
+ line_number=0
44
+ while r=Naksh.buffer.gets
45
+ line_number+=1 if not number_nonblank_lines or r.empty?
46
+ r=line_number.pad(6,' ')<<r if number_all_lines
47
+ Naksh.buffer.puts r
48
+ end
49
+ 0
50
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/local/bin/ruby
2
+ # 2011 Mahmut Bulut
3
+ # GPLv3
4
+ # This file is part of Naksh.
5
+
6
+ require 'pathname'
7
+
8
+ lambda do |*a|
9
+ Naksh.config['/env/pwd']=(Pathname.new(Naksh.config['/env/pwd'])+a.last).realpath.to_s# rescue return 1
10
+ 0
11
+ end
@@ -0,0 +1,57 @@
1
+ {
2
+ "status" : "\\c is questionable",
3
+ "name" : "echo",
4
+ "short_description" : "Print a line of text",
5
+ "synopsis" : "echo [option]... [string]...",
6
+ "author" : "Mahmut Bulut",
7
+ "report_bugs" : "mailto:naksh-developers@rubyforge.org",
8
+ "copyright" : "2011 Mahmut Bulut GPLv3",
9
+ "last_modification" : "1198892637",
10
+ "designed_from" : "GNU coreutils 6.9 echo documentation",
11
+ "long_description" : "echo: Print a line of text
12
+
13
+ echo writes each given string to standard output, with a space between each and a newline after the last one. Synopsis:
14
+
15
+ echo [option]... [string]...
16
+
17
+ The program accepts the following options. Also see Common options. Options must precede operands, and the normally-special argument ‘--’ has no special meaning and is treated like any other string.
18
+
19
+ ‘-n’
20
+ Do not output the trailing newline.
21
+ ‘-e’
22
+ Enable interpretation of the following backslash-escaped characters in each string:
23
+
24
+ ‘\a’
25
+ alert (bell)
26
+ ‘\b’
27
+ backspace
28
+ ‘\c’
29
+ suppress trailing newline
30
+ ‘\f’
31
+ form feed
32
+ ‘\n’
33
+ new line
34
+ ‘\r’
35
+ carriage return
36
+ ‘\t’
37
+ horizontal tab
38
+ ‘\v’
39
+ vertical tab
40
+ ‘\\’
41
+ backslash
42
+ ‘\0nnn’
43
+ the eight-bit value that is the octal number nnn (zero to three octal digits)
44
+ ‘\nnn’
45
+ the eight-bit value that is the octal number nnn (one to three octal digits)
46
+ ‘\xhh’
47
+ the eight-bit value that is the hexadecimal number hh (one or two hexadecimal digits)
48
+
49
+
50
+ ‘-E’
51
+ Disable interpretation of backslash escapes in each string. This is the default. If -e and -E are both specified, the last one given takes effect.
52
+
53
+ If the POSIXLY_CORRECT environment variable is set, then when echo's first argument is not -n it outputs option-like arguments instead of treating them as options. For example, echo -ne hello outputs ‘-ne hello’ instead of plain ‘hello’.
54
+
55
+ POSIX does not require support for any options, and says that the behavior of echo is implementation-defined if any string contains a backslash or if the first argument is -n. Portable programs can use the printf command if they need to omit trailing newlines or output control characters or backslashes. See printf invocation.
56
+
57
+ An exit status of zero indicates success, and a nonzero value indicates failure."}
@@ -0,0 +1,60 @@
1
+ require 'scooter/email.rb'
2
+ require 'xri/url.rb'
3
+ #this is superior in content quality to the json version
4
+ {
5
+ :status => "\\c is questionable",
6
+ :name => "echo",
7
+ :short_description => "Print a line of text",
8
+ :synopsis => "echo [option]... [string]...",
9
+ :author => "Mahmut Bulut",
10
+ :report_bugs => "naksh-developers@rubyforge.org".to_email_address,
11
+ :copyright => "2011 Mahmut Bulut GPLv3",
12
+ :last_modification => Time.at(1198892637),
13
+ "designed_from" => "GNU coreutils 6.9 echo documentation",
14
+ :long_description => %q{echo: Print a line of text
15
+
16
+ echo writes each given string to standard output, with a space between each and a newline after the last one. Synopsis:
17
+
18
+ echo [option]... [string]...
19
+
20
+ The program accepts the following options. Also see Common options. Options must precede operands, and the normally-special argument ‘--’ has no special meaning and is treated like any other string.
21
+
22
+ ‘-n’
23
+ Do not output the trailing newline.
24
+ ‘-e’
25
+ Enable interpretation of the following backslash-escaped characters in each string:
26
+
27
+ ‘\a’
28
+ alert (bell)
29
+ ‘\b’
30
+ backspace
31
+ ‘\c’
32
+ suppress trailing newline
33
+ ‘\f’
34
+ form feed
35
+ ‘\n’
36
+ new line
37
+ ‘\r’
38
+ carriage return
39
+ ‘\t’
40
+ horizontal tab
41
+ ‘\v’
42
+ vertical tab
43
+ ‘\\’
44
+ backslash
45
+ ‘\0nnn’
46
+ the eight-bit value that is the octal number nnn (zero to three octal digits)
47
+ ‘\nnn’
48
+ the eight-bit value that is the octal number nnn (one to three octal digits)
49
+ ‘\xhh’
50
+ the eight-bit value that is the hexadecimal number hh (one or two hexadecimal digits)
51
+
52
+
53
+ ‘-E’
54
+ Disable interpretation of backslash escapes in each string. This is the default. If -e and -E are both specified, the last one given takes effect.
55
+
56
+ If the POSIXLY_CORRECT environment variable is set, then when echo's first argument is not -n it outputs option-like arguments instead of treating them as options. For example, echo -ne hello outputs ‘-ne hello’ instead of plain ‘hello’.
57
+
58
+ POSIX does not require support for any options, and says that the behavior of echo is implementation-defined if any string contains a backslash or if the first argument is -n. Portable programs can use the printf command if they need to omit trailing newlines or output control characters or backslashes. See printf invocation.
59
+
60
+ An exit status of zero indicates success, and a nonzero value indicates failure.}}