Sha256: 349da387176f6c47b7067d546db11d29509c2fc18ef7e435e6cd8a66c07691db

Contents?: true

Size: 1.99 KB

Versions: 1

Compression:

Stored size: 1.99 KB

Contents

class Environment < Hash

  def initialize
  end

  def self.scm
    return "git" if(Dir.exists?(".git"))
	return "svn" if(Dir.exists?(".svn"))
	"none"
  end

  def self.dev_root
     ["DEV_HOME","DEV_ROOT","USERPROFILE","HOME"].each {|v|
	  return ENV[v].gsub('\\','/') unless ENV[v].nil?
	 }
     dir="~"
     dir=ENV["HOME"] unless ENV["HOME"].nil?
     dir=ENV["USERPROFILE"].gsub('\\','/') unless ENV["USERPROFILE"].nil?
     dir=ENV["DEV_ROOT"].gsub('\\','/') unless ENV["DEV_ROOT"].nil?

	 return dir
  end

  def self.machine
     if !ENV['COMPUTERNAME'].nil? 
	   return ENV['COMPUTERNAME']
	 end

     machine = `hostname`
     machine = machine.split('.')[0] if machine.include?('.')
	 return machine.strip
   end

  def self.working_directory
    Rake.application.original_dir
  end

  def self.context
    dir =Environment.working_directory.gsub(Environment.dev_root + '/','')
	return dir.split('/').first
  end

  def self.relative_directory
    Environment.working_directory.gsub(Environment.dev_root + '/' + Environment.context + '/','')
  end

  def self.branch
    if(Environment.scm=='git')
      branches=`git branch`.split(/\n/)
	  branches.each{|b|
	    return b.gsub('*','').strip if b.include?('*')
	  }
	end
  end

  def self.copy_if_newer(source,dest)
    if(File.exists?(source))
	  if(File.exists?(dest))
		if(File.mtime(source) > File.mtime(dest))
		  FileUtils.cp(source,dest) 
    	  puts "copied " + Color.green + source + Color.clear + " to " + Color.green + dest + Color.clear
		end
	  else
	    FileUtils.cp(source,dest)
		puts "copied " + Color.green + source + Color.clear + " to " + Color.green + dest + Color.clear
	  end
	end
  end

  def self.rake(directory)
    Dir.chdir(dir) do
	  timer=Timer.new
	  out=`rake default`
		
	  if $? != 0 
	    puts "rake default in " +  directory
	    puts out
		raise project + " failed"
	  else
		puts "rake default (" + directory + ") " + timer.elapsed_str
	  end
	end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dev_tasks-0.0.54 lib/environment.rb