Sha256: 445eb15b7062387388fd825760eeb50d891e565651342cb54da2e5064d3c1f02

Contents?: true

Size: 1.39 KB

Versions: 1

Compression:

Stored size: 1.39 KB

Contents

require 'albacore/support/albacore_helper'

class MSBuild
	include RunCommand
	include YAMLConfig
	include Logging
	
	attr_accessor :solution, :verbosity
	
	def initialize
		@path_to_command = build_path_to_command
		super()
	end
	
	def build_path_to_command
		win_dir = ENV['windir'] || ENV['WINDIR']
		win_dir = 'C:/Windows' if win_dir.nil?
		
		File.join(win_dir.dup, 'Microsoft.NET', 'Framework', 'v3.5', 'MSBuild.exe')
	end
	
	def targets(targets)
		@targets=targets
	end
	
	def properties=(properties)
		@properties = properties
	end
	
	def build
		build_solution(@solution)
	end
	
	def build_solution(solution)
		check_solution solution
		
		command_parameters = []
		command_parameters << "\"#{solution}\""
		command_parameters << "\"/verbosity:#{@verbosity}\"" if @verbosity != nil
		command_parameters << build_properties if @properties != nil
		command_parameters << "\"/target:#{build_targets}\"" if @targets != nil
		
		result = run_command "MSBuild", command_parameters.join(" ")
		
		failure_message = 'MSBuild Failed. See Build Log For Detail'
		fail_with_message failure_message if !result
	end
	
	def check_solution(file)
		return if file
		msg = 'solution cannot be nil'
		fail_with_message msg
	end
	
	def build_targets
		@targets.join ";"
	end

	def build_properties
		option_text = []
		@properties.each do |key, value|
			option_text << "/p:#{key}\=\"#{value}\""
		end
		option_text.join(" ")
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
albacore-0.0.9 lib/albacore/msbuild.rb