33 lines
		
	
	
		
			554 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			554 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
 | 
						|
class Object
 | 
						|
  def deep_clone
 | 
						|
    Marshal::load(Marshal.dump(self))
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
 | 
						|
class SystemUtils
 | 
						|
 | 
						|
  constructor :system_wrapper
 | 
						|
 | 
						|
  def setup
 | 
						|
    @tcsh_shell = nil
 | 
						|
  end
 | 
						|
 | 
						|
  def tcsh_shell?
 | 
						|
    # once run a single time, return state determined at that execution
 | 
						|
    return @tcsh_shell if not @tcsh_shell.nil?
 | 
						|
  
 | 
						|
    result = @system_wrapper.shell_backticks('echo $version')
 | 
						|
 | 
						|
    if ((result[:exit_code] == 0) and (result[:output].strip =~ /^tcsh/))
 | 
						|
      @tcsh_shell = true
 | 
						|
    else
 | 
						|
      @tcsh_shell = false
 | 
						|
    end
 | 
						|
  
 | 
						|
    return @tcsh_shell
 | 
						|
  end
 | 
						|
 | 
						|
end
 |