Class: Rake::Application

Inherits:
Object
  • Object
show all
Defined in:
lib/rake/config.rb,
lib/rake/extensions.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.catchStderrObject



118
119
120
121
122
# File 'lib/rake/extensions.rb', line 118

def self.catchStderr()
  @logToStderr = false;
  @oldStderr = $stderr;
  $stderr = @logFile;
end

.catchStdoutObject



113
114
115
116
# File 'lib/rake/extensions.rb', line 113

def self.catchStdout()
  @oldStdout = $stdout;
  $stdout = @logFile;
end

.debug(*args) ⇒ Object



171
172
173
# File 'lib/rake/extensions.rb', line 171

def self.debug(*args)
  @logger.debug(*args) if @logger;
end

.error(*args) ⇒ Object



159
160
161
# File 'lib/rake/extensions.rb', line 159

def self.error(*args)
  @logger.error(*args) if @logger;
end

.fatal(*args) ⇒ Object



155
156
157
# File 'lib/rake/extensions.rb', line 155

def self.fatal(*args)
  @logger.fatal(*args) if @logger;
end

.flushLogObject



128
129
130
# File 'lib/rake/extensions.rb', line 128

def self.flushLog()
  @logFile.flush();
end

.info(*args) ⇒ Object



167
168
169
# File 'lib/rake/extensions.rb', line 167

def self.info(*args)
  @logger.info(*args) if @logger;
end

.log(*args) ⇒ Object



151
152
153
# File 'lib/rake/extensions.rb', line 151

def self.log(*args)
  @logger.log(*args) if @logger;
end

.logData(someData) ⇒ Object



140
141
142
# File 'lib/rake/extensions.rb', line 140

def self.logData(someData)
  @logFile.write(someData) if @logFile;
end

.logFileObject



136
137
138
# File 'lib/rake/extensions.rb', line 136

def self.logFile()
  return @logFile;
end

.loggerObject



132
133
134
# File 'lib/rake/extensions.rb', line 132

def self.logger()
  return @logger;
end

.mesg(*args) ⇒ Object



175
176
177
178
# File 'lib/rake/extensions.rb', line 175

def self.mesg(*args)
  @logger.info(*args) if @logger;
  $stderr.puts(*args) if @logToStderr;
end

.mesg_confObject



202
203
204
205
206
# File 'lib/rake/extensions.rb', line 202

def self.mesg_conf
  str = Conf.prettyPrint;
  @logger.info(str);
  $stderr.puts(str) if @logToStderr;
end

.mesg_pp(*args) ⇒ Object

taken from www.ruby-forum.com/topic/43725 (2012/01/21)



181
182
183
184
185
186
187
188
189
190
191
192
# File 'lib/rake/extensions.rb', line 181

def self.mesg_pp(*args)
  old_out = $stdout
  begin
    s=StringIO.new
    $stdout=s
    pp(*args)
  ensure
    $stdout=old_out
  end
  @logger.info(s.string);
  $stderr.puts(s.string) if @logToStderr;
end

.mesg_yaml(*args) ⇒ Object



194
195
196
197
198
199
200
# File 'lib/rake/extensions.rb', line 194

def self.mesg_yaml(*args)
  args.each do | anArg |
    str = YAML.dump(anArg);
    @logger.info(str);
    $stderr.puts(str) if @logToStderr;
  end
end

.openLogger(logFileBaseName) ⇒ Object



105
106
107
108
109
110
111
# File 'lib/rake/extensions.rb', line 105

def self.openLogger(logFileBaseName)
  timeStamp = Time.now.utc.strftime("%Y-%m-%d-%H-%M-%S-%L.log");
  @logFile = File.open(logFileBaseName+'-'+timeStamp, 'w');
  @logger = Logger.new(@logFile);
  @logger.datetime_format = "%H-%M-%S-%L";
  @logToStderr = true;
end

.set_logger(aLogger, aLogFile = nil) ⇒ Object



144
145
146
147
148
149
# File 'lib/rake/extensions.rb', line 144

def self.set_logger(aLogger, aLogFile=nil)
  @logFile = aLogFile;
  oldLogger = @logger;
  @logger = aLogger;
  return oldLogger;
end

.setLogToStderr(logToStderr) ⇒ Object



124
125
126
# File 'lib/rake/extensions.rb', line 124

def self.setLogToStderr(logToStderr)
  @logToStderr = logToStderr;
end

.warn(*args) ⇒ Object



163
164
165
# File 'lib/rake/extensions.rb', line 163

def self.warn(*args)
  @logger.warn(*args) if @logger;
end

Instance Method Details

#collect_command_line_tasksObject



531
532
533
534
535
536
# File 'lib/rake/config.rb', line 531

def collect_command_line_tasks
  rake_config_original_collect_command_line_tasks;
  @top_level_tasks.unshift("cookPostConfig");
  @top_level_tasks.unshift("cookConfig");
  @top_level_tasks.unshift("cookPreConfig");
end

#rake_config_original_collect_command_line_tasksObject



530
# File 'lib/rake/config.rb', line 530

alias_method :rake_config_original_collect_command_line_tasks, :collect_command_line_tasks

#rake_config_original_standard_rake_optionsObject



508
# File 'lib/rake/config.rb', line 508

alias_method :rake_config_original_standard_rake_options, :standard_rake_options

#rake_config_original_top_levelObject



538
# File 'lib/rake/config.rb', line 538

alias_method :rake_config_original_top_level, :top_level

#raw_load_rakefileObject



546
547
548
549
550
551
552
553
554
555
# File 'lib/rake/config.rb', line 546

def raw_load_rakefile
  myCookbookDir = File.expand_path(Dir.getwd());
  FileUtils.mkdir_p('logs');
  Rake::Application.openLogger('logs/'+Conf.log_file_name.gsub(/\//,'_')+'-buildLog');
  Rake::Application.logger.level = Logger::DEBUG;
  Rake::Application.mesg "Cook version: #{Cook::VERSION}";
  Conf.add_global_cookbooks();
  Rake::Application.mesg "Building in #{myCookbookDir}";
  Conf.add_cookbook(myCookbookDir);
end

#standard_rake_optionsObject



509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
# File 'lib/rake/config.rb', line 509

def standard_rake_options
  options = rake_config_original_standard_rake_options();
  options.push(
    ['--config', '-c YAML-CONFIG-FILE-NAME', "Load YAML configuration files named YAML-CONFIG-FILE-NAME in each receipe if it exists", 
      lambda { |value|
        confValues = value.split(/,/).each do | aValue |
          Conf.add_config_file_name(aValue);
        end
      }
    ]);
  options.push(
    ['--global-cookbook', '-C GLOBAL-COOKBOOK-DIRECTORY', "Load global Cookbook from the GLOBAL-COOKBOOK-DIRECTORY if it exists", 
      lambda { |value|
        confDirValues = value.split(/,/).each do | aValue |
          Conf.add_global_cookbook_directory(aValue);
        end
      }
    ]);
  return options;
end

#top_levelObject



539
540
541
542
543
544
# File 'lib/rake/config.rb', line 539

def top_level
  # load the central config files after all recipes
  Conf.load_central_config_files(); 
  # but before we start invoking tasks
  rake_config_original_top_level;
end