lib/docman/commands/yaml_execute_cmd.rb in docman-0.0.83 vs lib/docman/commands/yaml_execute_cmd.rb in docman-0.0.84
- old
+ new
@@ -19,29 +19,41 @@
if self['environments'].nil? || self['environments'] == 'all' || self['environments'].include?(@context.environment_name)
if self['providers'].nil? || self['providers'] == 'all' || self['providers'].include?(@context['provider'])
commands = nil
if self['source_type'] == 'file'
yaml_file_name = self['yaml_file_name'].nil? ? '{unipipe,.unipipe,drupipe,.drupipe,build,.build}.{yaml,yml}' : self['yaml_file_name']
- build_file = Dir.glob([File.join(@context['docroot_config'].config_dir, yaml_file_name), File.join(@context['full_build_path'], yaml_file_name)]).first
+ search_pathes = []
+ if @context['name'] == 'master'
+ search_pathes.push File.join(@context['docroot_config'].config_dir, yaml_file_name)
+ end
+ search_pathes.push File.join(@context['full_build_path'], yaml_file_name)
+ build_file = Dir.glob(search_pathes).first
if not build_file.nil?
build_file_yaml = YAML::load_file(build_file)
commands = build_file_yaml[self['stage']]
source = yaml_file_name
end
end
+ chdir = ''
if self['source_type'] == 'inline'
commands = self['commands']
source = 'inline'
+ if self.has_key?('exec_dir')
+ chdir = self['exec_dir']
+ end
end
+ chdir_full = File.join(@context['full_build_path'], chdir)
+ Dir.chdir chdir_full
unless commands.nil?
commands.each do |cmd|
- logger.info "Execute from #{source}: #{cmd}"
+ logger.info "Execute in #{chdir_full} from #{source}: #{cmd}"
logger.info `#{cmd}`
if $?.exitstatus > 0
raise "Command #{cmd} was failed"
end
end
end
+ Dir.chdir @context['full_build_path']
end
end
end
end
end
\ No newline at end of file