Object
shell/filter.rb - $Release Version: 0.6.0 $ $Revision: 11708 $ $Date: 2007-02-12 17:01:19 -0600 (Mon, 12 Feb 2007) $ by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd)
–
version.rb - shell version definition file $Release Version: 0.6.0$ $Revision: 11708 $ $Date: 2007-02-12 17:01:19 -0600 (Mon, 12 Feb 2007) $ by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd)
–
# File shell.rb, line 223 def Shell.alias_command(ali, command, *opts, &block) CommandProcessor.alias_command(ali, command, *opts, &block) end
# File shell.rb, line 43 def debug=(val) @debug = val @verbose = val if val end
command definitions
# File shell.rb, line 215 def Shell.def_system_command(command, path = command) CommandProcessor.def_system_command(command, path) end
# File shell.rb, line 66 def default_record_separator if @default_record_separator @default_record_separator else $/ end end
# File shell.rb, line 74 def default_record_separator=(rs) @default_record_separator = rs end
# File shell.rb, line 54 def default_system_path if @default_system_path @default_system_path else ENV["PATH"].split(":") end end
# File shell.rb, line 62 def default_system_path=(path) @default_system_path = path end
# File shell.rb, line 231 def Shell.install_system_commands(pre = "sys_") CommandProcessor.install_system_commands(pre) end
# File shell.rb, line 79 def initialize @cwd = Dir.pwd @dir_stack = [] @umask = nil @system_path = Shell.default_system_path @record_separator = Shell.default_record_separator @command_processor = CommandProcessor.new(self) @process_controller = ProcessController.new(self) @verbose = Shell.verbose @debug = Shell.debug end
# File shell.rb, line 244 def self.notify(*opts, &block) Thread.exclusive do if opts[-1].kind_of?(String) yorn = verbose? else yorn = opts.pop end return unless yorn _head = true print opts.collect{|mes| mes = mes.dup yield mes if iterator? if _head _head = false "shell: " + mes else " " + mes end }.join("\n")+"\n" end end
If called as iterator, it restores the current directory when the block ends.
# File shell.rb, line 144 def chdir(path = nil) if iterator? cwd_old = @cwd begin chdir(path) yield ensure chdir(cwd_old) end else path = "~" unless path @cwd = expand_path(path) notify "current dir: #{@cwd}" rehash self end end
# File shell.rb, line 107 def debug=(val) @debug = val @verbose = val if val end
# File shell.rb, line 118 def expand_path(path) File.expand_path(path, @cwd) end
# File shell.rb, line 236 def inspect if debug.kind_of?(Integer) && debug > 2 super else to_s end end
process management
# File shell.rb, line 204 def jobs @process_controller.jobs end
# File shell.rb, line 208 def kill(sig, command) @process_controller.kill_job(sig, command) end
# File shell.rb, line 189 def popdir if pop = @dir_stack.pop chdir pop notify "dir stack: [#{@dir_stack.join ', '}]" self else Shell.Fail DirStackEmpty end end
# File shell.rb, line 163 def pushdir(path = nil) if iterator? pushdir(path) begin yield ensure popdir end elsif path @dir_stack.push @cwd chdir path notify "dir stack: [#{@dir_stack.join ', '}]" self else if pop = @dir_stack.pop @dir_stack.push @cwd chdir pop notify "dir stack: [#{@dir_stack.join ', '}]" self else Shell.Fail DirStackEmpty end end end