Method: Morpheus::Cli::DotFile#execute
- Defined in:
- lib/morpheus/cli/dot_file.rb
#execute ⇒ Array
execute this file as a morpheus shell script executes each line in the file as a morpheus expression, ignores empty lines and comments ‘#’
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/morpheus/cli/dot_file.rb', line 37 def execute() if !File.exist?(@filename) print "#{Term::ANSIColor.red}source file not found: #{@filename}#{Term::ANSIColor.reset}\n" # if Morpheus::Logging.debug? else Morpheus::Logging::DarkPrinter.puts "executing source file #{@filename}" if Morpheus::Logging.debug? end file_contents = File.read(@filename) lines = file_contents.split("\n") cmd_results = [] line_num = 0 lines.each_with_index do |line, line_index| line_num = line_index + 1 line = line.strip next if line.empty? next if line =~ /^\#/ # skip comments cmd_exit_code = 0 cmd_err = nil cmd_result = nil begin cmd_result = Morpheus::Cli::CliRegistry.exec_expression(line) rescue SystemExit => err if err.success? cmd_result = true else puts "#{red} source file: #{@filename}, line: #{line_num}, command: #{line}, error: #{err}#{reset}" cmd_result = false end rescue => err # raise err puts "#{red} source file: #{@filename}, line: #{line_num}, command: #{line}, error: #{err}#{reset}" cmd_result = false end cmd_results << cmd_result end return cmd_results end |