dev_tasks 1.0.38 → 1.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/dev_tasks.rb +3 -219
- data/lib/tasks.rb +87 -0
- data/spec/dev_tasks_spec.rb +12 -38
- data/spec/gem-example/rakefile.rb +16 -0
- metadata +20 -41
- data/lib/add.rb +0 -30
- data/lib/artifacts.x.rb +0 -46
- data/lib/build.rb +0 -28
- data/lib/color.rb +0 -23
- data/lib/commands.rb +0 -63
- data/lib/commit.rb +0 -25
- data/lib/console.rb +0 -81
- data/lib/dependencies.rb +0 -85
- data/lib/environment.rb +0 -118
- data/lib/htmllog.rb +0 -53
- data/lib/jsonlog.rb +0 -18
- data/lib/logger.rb +0 -37
- data/lib/msbuild.rb +0 -41
- data/lib/publish.rb +0 -50
- data/lib/pull.rb +0 -15
- data/lib/push.rb +0 -12
- data/lib/settings.rb +0 -26
- data/lib/setup.rb +0 -17
- data/lib/spec.json +0 -1
- data/lib/svnexports.rb +0 -5
- data/lib/teardown.rb +0 -4
- data/lib/test.rb +0 -55
- data/lib/timer.rb +0 -41
- data/lib/upgrade.rb +0 -52
- data/lib/verify.rb +0 -38
- data/lib/yamllog.rb +0 -18
- data/spec/dependencies_spec.rb +0 -28
- data/spec/environment_spec.rb +0 -8
- data/spec/msbuild_spec.rb +0 -9
- data/spec/spec_helper.rb +0 -4
- data/spec/test_data/cpp_projects/helloLib/rakefile.rb +0 -9
- data/spec/test_data/csharp_projects/JsonNet.Test.csproj +0 -75
- data/spec/test_data/csharp_projects/JsonNet.csproj +0 -79
- data/spec/test_data/csharp_projects/helloDll/helloDll.Net2.0.csproj +0 -54
- data/spec/test_data/csharp_projects/helloDll/helloDll.Net3.5.csproj +0 -54
- data/spec/test_data/csharp_projects/helloDll/helloDll.Net4.0.csproj +0 -54
- data/spec/test_data/csharp_projects/helloDll/helloDll.Net4.5.csproj +0 -56
- data/spec/test_data/csharp_projects/helloDll/rakefile.rb +0 -1
- data/spec/test_data/ruby_projects/helloGem/rakefile.rb +0 -3
    
        data/lib/console.rb
    DELETED
    
    | @@ -1,81 +0,0 @@ | |
| 1 | 
            -
            require_relative './color.rb'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            class Console
         | 
| 4 | 
            -
             | 
| 5 | 
            -
              def self.debug message
         | 
| 6 | 
            -
                if(defined?(DEV_TASKS))
         | 
| 7 | 
            -
            	  if(DEV_TASKS.has_key?(:debug))
         | 
| 8 | 
            -
            	    puts message
         | 
| 9 | 
            -
            	  end
         | 
| 10 | 
            -
            	end
         | 
| 11 | 
            -
              end
         | 
| 12 | 
            -
             | 
| 13 | 
            -
              def self.print message
         | 
| 14 | 
            -
                puts message
         | 
| 15 | 
            -
              end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
              def self.announce_task_start task
         | 
| 18 | 
            -
            	line = Color.bold + Color.cyan + "[:" + task + "]" + Color.clear
         | 
| 19 | 
            -
            	#while(line.length < 80) do
         | 
| 20 | 
            -
            	#  line = line + "="
         | 
| 21 | 
            -
            	#end
         | 
| 22 | 
            -
            	#puts " "
         | 
| 23 | 
            -
            	puts line + Color.clear
         | 
| 24 | 
            -
              end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
              def self.announce_task_end task, elapsed_str
         | 
| 27 | 
            -
                line =  task + " completed in " + Color.green + elapsed_str + Color.clear
         | 
| 28 | 
            -
            	puts line + Color.clear
         | 
| 29 | 
            -
            	puts " "
         | 
| 30 | 
            -
              end
         | 
| 31 | 
            -
             | 
| 32 | 
            -
              def self.start_command command
         | 
| 33 | 
            -
                
         | 
| 34 | 
            -
              end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
              def self.end_command command
         | 
| 37 | 
            -
                
         | 
| 38 | 
            -
                if command[:exit_code] != 0
         | 
| 39 | 
            -
                    print " " + Color.green + command[:input] + Color.clear
         | 
| 40 | 
            -
                    puts command[:output]
         | 
| 41 | 
            -
                    raise Color.yellow + "`" + Color.green + command[:input] + Color.yellow + "`" + Color.clear + 
         | 
| 42 | 
            -
                      " has exit code " + command[:exit_code].to_s  + " " + command[:output]
         | 
| 43 | 
            -
                else
         | 
| 44 | 
            -
                    puts command[:input] + " " + command[:elapsed]
         | 
| 45 | 
            -
                end
         | 
| 46 | 
            -
              end
         | 
| 47 | 
            -
             | 
| 48 | 
            -
              def self.print_hash(indent,hash)
         | 
| 49 | 
            -
                max_length=0
         | 
| 50 | 
            -
                hash.each { |name,value| max_length=name.to_s.length if name.to_s.length > max_length }
         | 
| 51 | 
            -
            	max_length=max_length+1
         | 
| 52 | 
            -
                index=0
         | 
| 53 | 
            -
                hash.each do |name,value|
         | 
| 54 | 
            -
            	  prefix = "#{indent}#{name.to_s}".rjust(max_length)
         | 
| 55 | 
            -
                  if value.kind_of?(Hash)
         | 
| 56 | 
            -
                    print_hash(prefix+" ",value)
         | 
| 57 | 
            -
                  elsif value.kind_of?(Array)
         | 
| 58 | 
            -
            	    Console.print_array prefix,name,value
         | 
| 59 | 
            -
                  else
         | 
| 60 | 
            -
            	    puts Color.bold + prefix + " " + Color.clear + Color.green + value.to_s + Color.clear
         | 
| 61 | 
            -
                  end
         | 
| 62 | 
            -
                  index+=1
         | 
| 63 | 
            -
                  indent=" ".rjust(indent.length)
         | 
| 64 | 
            -
                end
         | 
| 65 | 
            -
              end
         | 
| 66 | 
            -
             | 
| 67 | 
            -
              def self.print_array(prefix,key,array)
         | 
| 68 | 
            -
                array.each do |v|
         | 
| 69 | 
            -
                  if v.kind_of?(Hash)
         | 
| 70 | 
            -
            	    puts Color.bold + prefix + Color.clear
         | 
| 71 | 
            -
                    print_hash( prefix + " ".rjust(max_length),v)
         | 
| 72 | 
            -
                  else
         | 
| 73 | 
            -
                    puts Color.bold + prefix + " " + Color.clear + Color.green + v.to_s + Color.clear if v.kind_of?(String)
         | 
| 74 | 
            -
            		#prefix = indent + " ".rjust(max_length-1)
         | 
| 75 | 
            -
            		#prefix = " ".rjust(indent.length+max_length-1)
         | 
| 76 | 
            -
            		words = prefix.split(' ')
         | 
| 77 | 
            -
            		prefix = " ".rjust(prefix.length)
         | 
| 78 | 
            -
                  end
         | 
| 79 | 
            -
                end
         | 
| 80 | 
            -
              end
         | 
| 81 | 
            -
            end
         | 
    
        data/lib/dependencies.rb
    DELETED
    
    | @@ -1,85 +0,0 @@ | |
| 1 | 
            -
            # The discover method defines the following keys as appropriate:
         | 
| 2 | 
            -
            # :ruby a string array of discovered require statements
         | 
| 3 | 
            -
            # for example,
         | 
| 4 | 
            -
            # given rb file containing
         | 
| 5 | 
            -
            #   require 'json'
         | 
| 6 | 
            -
            #   require 'yaml'
         | 
| 7 | 
            -
            # the resulting dependies would be
         | 
| 8 | 
            -
            # dep[:ruby]=['json','yaml']
         | 
| 9 | 
            -
            #
         | 
| 10 | 
            -
            # C# dependencies are returned as a hash, as they are seperated into 
         | 
| 11 | 
            -
            # two groups, :system and :file
         | 
| 12 | 
            -
            # 
         | 
| 13 | 
            -
            #
         | 
| 14 | 
            -
            class Dependencies < Hash
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              def initialize
         | 
| 17 | 
            -
                discover
         | 
| 18 | 
            -
              end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
              def discover
         | 
| 21 | 
            -
                ruby_deps=Array.new
         | 
| 22 | 
            -
            	cs_system_deps=Array.new
         | 
| 23 | 
            -
            	cs_file_deps=Array.new
         | 
| 24 | 
            -
                Dir.glob("**/*.rb").each{|f|
         | 
| 25 | 
            -
                  text=File.read(f,:encoding=>'UTF-8')
         | 
| 26 | 
            -
            	  ruby_deps=ruby_deps|Dependencies.ruby_dependencies(text)
         | 
| 27 | 
            -
            	}
         | 
| 28 | 
            -
            	Dir.glob("*.csproj").each{|f|
         | 
| 29 | 
            -
            	  begin
         | 
| 30 | 
            -
                   text=File.read(f,:encoding=>'UTF-8')
         | 
| 31 | 
            -
            	   cs_system_deps=cs_system_deps|Dependencies.csharp_system_dependencies(text)
         | 
| 32 | 
            -
            	   cs_file_deps=cs_file_deps|Dependencies.csharp_file_dependencies(text)
         | 
| 33 | 
            -
            	  rescue Exception => ex
         | 
| 34 | 
            -
                    puts "Exception raised while scanning " + f + " for dependencies" 
         | 
| 35 | 
            -
                    raise ex
         | 
| 36 | 
            -
            	  end
         | 
| 37 | 
            -
            	}
         | 
| 38 | 
            -
             | 
| 39 | 
            -
            	self[:ruby]=ruby_deps.sort if(ruby_deps.length>0)
         | 
| 40 | 
            -
            	if(cs_system_deps.length > 0 || cs_file_deps.length > 0)
         | 
| 41 | 
            -
            	  self["C#"]=Hash.new
         | 
| 42 | 
            -
            	  self["C#"][:system]=cs_system_deps.sort if(cs_system_deps.length > 0)
         | 
| 43 | 
            -
            	  self["C#"][:file]=cs_file_deps.sort if(cs_file_deps.length > 0)
         | 
| 44 | 
            -
            	end
         | 
| 45 | 
            -
              end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
              def self.ruby_dependencies source
         | 
| 48 | 
            -
                result=Array.new
         | 
| 49 | 
            -
                source.scan(/require '([\w\/]+)/).each{|m|
         | 
| 50 | 
            -
            	  dep=m.first.to_s
         | 
| 51 | 
            -
            	  result << dep if(!result.include?(dep))
         | 
| 52 | 
            -
            	}
         | 
| 53 | 
            -
            	return result
         | 
| 54 | 
            -
              end
         | 
| 55 | 
            -
             | 
| 56 | 
            -
              def self.csharp_system_dependencies source
         | 
| 57 | 
            -
                deps=Array.new
         | 
| 58 | 
            -
                source.scan(/<Reference Include="([\w\.-]+)"[\s]+\//).each{|m|
         | 
| 59 | 
            -
            	  dep=m.first.to_s
         | 
| 60 | 
            -
            	  deps << dep if(!deps.include?(dep))
         | 
| 61 | 
            -
            	}
         | 
| 62 | 
            -
            	deps
         | 
| 63 | 
            -
              end
         | 
| 64 | 
            -
             | 
| 65 | 
            -
              def self.csharp_file_dependencies source
         | 
| 66 | 
            -
                deps=Array.new
         | 
| 67 | 
            -
                source.scan(/<HintPath>([\w\.\\\s-]+)</).each{|m|
         | 
| 68 | 
            -
            	  dep=m.first.to_s
         | 
| 69 | 
            -
            	  deps << dep if(!deps.include?(dep))
         | 
| 70 | 
            -
            	}
         | 
| 71 | 
            -
            	deps
         | 
| 72 | 
            -
              end
         | 
| 73 | 
            -
             | 
| 74 | 
            -
              def show
         | 
| 75 | 
            -
                self.each do |key,array|
         | 
| 76 | 
            -
            	  if(array.length > 0)
         | 
| 77 | 
            -
            	    puts key
         | 
| 78 | 
            -
            	    array.each {|v|
         | 
| 79 | 
            -
            	      puts "  " + Color.green + v + Color.clear + " "
         | 
| 80 | 
            -
            	    }
         | 
| 81 | 
            -
            	  end
         | 
| 82 | 
            -
            	end
         | 
| 83 | 
            -
            	puts " "
         | 
| 84 | 
            -
              end
         | 
| 85 | 
            -
            end
         | 
    
        data/lib/environment.rb
    DELETED
    
    | @@ -1,118 +0,0 @@ | |
| 1 | 
            -
            #require 'dev_environment'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            class Environment #S< Hash#.class_eval do #< Hash do
         | 
| 4 | 
            -
             | 
| 5 | 
            -
              def self.scm
         | 
| 6 | 
            -
                return "git" if(Dir.exists?(".git"))
         | 
| 7 | 
            -
            	  return "svn" if(Dir.exists?(".svn"))
         | 
| 8 | 
            -
            	  "none"
         | 
| 9 | 
            -
              end
         | 
| 10 | 
            -
             | 
| 11 | 
            -
              def self.copy src,dest
         | 
| 12 | 
            -
                FileUtils.mkdir_p File.dirname(dest) if !File.exists?(File.dirname(dest))
         | 
| 13 | 
            -
            	  FileUtils.cp(src,dest)
         | 
| 14 | 
            -
              end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              def self.copy_files files,dest
         | 
| 17 | 
            -
                Console.debug("Environment.copy_files([#{files.to_s}],'#{dest}'')")
         | 
| 18 | 
            -
                files.each{|f|
         | 
| 19 | 
            -
            	  if(File.directory?(dest))
         | 
| 20 | 
            -
            	    dest_file = "#{dest}/#{f}"
         | 
| 21 | 
            -
            	    Console.debug "copying #{f} to #{dest_file}"
         | 
| 22 | 
            -
            		FileUtils.mkdir_p(File.dirname(dest_file)) if(!File.exists?(File.dirname(dest_file)))
         | 
| 23 | 
            -
            	    FileUtils.cp(f,dest_file)
         | 
| 24 | 
            -
            	  end
         | 
| 25 | 
            -
            	}
         | 
| 26 | 
            -
              end
         | 
| 27 | 
            -
             | 
| 28 | 
            -
              def self.svn_add_all dir
         | 
| 29 | 
            -
            	Dir.chdir(dir) do
         | 
| 30 | 
            -
            	  Dir.glob('**/*').each{|f|
         | 
| 31 | 
            -
            	    puts `svn add #{f} --parents` if(!File.directory?(f))
         | 
| 32 | 
            -
            	  }
         | 
| 33 | 
            -
            	end
         | 
| 34 | 
            -
              end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
              def self.scm_origin
         | 
| 37 | 
            -
                if(Dir.exists?(".git"))
         | 
| 38 | 
            -
            	  `git remote show origin`.scan(/Fetch URL: ([\w:\/.-]+)/).each{|m|
         | 
| 39 | 
            -
            	    return m.first.to_s
         | 
| 40 | 
            -
            	  }
         | 
| 41 | 
            -
            	end
         | 
| 42 | 
            -
            	if(Dir.exists?(".svn"))
         | 
| 43 | 
            -
            	  `svn info`.scan(/URL: ([\w:\/.-]+)/).each{|m|
         | 
| 44 | 
            -
            	    return m.first.to_s
         | 
| 45 | 
            -
            	  }
         | 
| 46 | 
            -
            	end
         | 
| 47 | 
            -
                ""
         | 
| 48 | 
            -
              end
         | 
| 49 | 
            -
             | 
| 50 | 
            -
              def self.svn_latest_revision
         | 
| 51 | 
            -
                if(Dir.exists?(".svn"))
         | 
| 52 | 
            -
            	  `svn info`.scan(/Last Changed Rev: ([\d]+)/).each{|m|
         | 
| 53 | 
            -
            	    return m.first.to_s
         | 
| 54 | 
            -
            	  }
         | 
| 55 | 
            -
            	end
         | 
| 56 | 
            -
            	"0"
         | 
| 57 | 
            -
              end
         | 
| 58 | 
            -
             | 
| 59 | 
            -
              def self.working_directory
         | 
| 60 | 
            -
                Rake.application.original_dir
         | 
| 61 | 
            -
              end
         | 
| 62 | 
            -
             | 
| 63 | 
            -
              def self.context
         | 
| 64 | 
            -
                dir =Environment.working_directory.gsub(Environment.dev_root + '/','')
         | 
| 65 | 
            -
            	return dir.split('/').first
         | 
| 66 | 
            -
              end
         | 
| 67 | 
            -
             | 
| 68 | 
            -
              def self.relative_directory
         | 
| 69 | 
            -
                Environment.working_directory.gsub(Environment.dev_root + '/' + Environment.context + '/','')
         | 
| 70 | 
            -
              end
         | 
| 71 | 
            -
             | 
| 72 | 
            -
              def self.branch
         | 
| 73 | 
            -
                if(Environment.scm=='git')
         | 
| 74 | 
            -
                  branches=`git branch`.split(/\n/)
         | 
| 75 | 
            -
            	  branches.each{|b|
         | 
| 76 | 
            -
            	    return b.gsub('*','').strip if b.include?('*')
         | 
| 77 | 
            -
            	  }
         | 
| 78 | 
            -
            	end
         | 
| 79 | 
            -
              end
         | 
| 80 | 
            -
             | 
| 81 | 
            -
              def self.copy_if_newer(source,dest)
         | 
| 82 | 
            -
                if(File.exists?(source))
         | 
| 83 | 
            -
            	  if(File.exists?(dest))
         | 
| 84 | 
            -
            		if(File.mtime(source) > File.mtime(dest))
         | 
| 85 | 
            -
            		  FileUtils.cp(source,dest) 
         | 
| 86 | 
            -
                	  puts "copied " + Color.green + source + Color.clear + " to " + Color.green + dest + Color.clear
         | 
| 87 | 
            -
            		end
         | 
| 88 | 
            -
            	  else
         | 
| 89 | 
            -
            	    FileUtils.cp(source,dest)
         | 
| 90 | 
            -
            		puts "copied " + Color.green + source + Color.clear + " to " + Color.green + dest + Color.clear
         | 
| 91 | 
            -
            	  end
         | 
| 92 | 
            -
            	end
         | 
| 93 | 
            -
              end
         | 
| 94 | 
            -
             | 
| 95 | 
            -
              def self.rake(directory)
         | 
| 96 | 
            -
                Environment.rake(directory,'default')
         | 
| 97 | 
            -
              end
         | 
| 98 | 
            -
             | 
| 99 | 
            -
              def self.rake(directory,task)
         | 
| 100 | 
            -
                Environment.rake(directory,task,false)
         | 
| 101 | 
            -
              end
         | 
| 102 | 
            -
             | 
| 103 | 
            -
              def self.rake(directory,task,log)
         | 
| 104 | 
            -
                Dir.chdir(directory) do
         | 
| 105 | 
            -
            	  timer=Timer.new
         | 
| 106 | 
            -
            	  out=`rake #{task}`
         | 
| 107 | 
            -
            		
         | 
| 108 | 
            -
            	  if $? != 0 
         | 
| 109 | 
            -
            	    puts "rake #{task} in " +  directory if log
         | 
| 110 | 
            -
            	    puts out if log
         | 
| 111 | 
            -
            		raise "rake #{task} in " +  directory + " failed"
         | 
| 112 | 
            -
            	  else
         | 
| 113 | 
            -
            	    puts " " + timer.elapsed_str + " " + directory + " rake " + task if log
         | 
| 114 | 
            -
            		#puts "rake default (" + directory + ") " + timer.elapsed_str
         | 
| 115 | 
            -
            	  end
         | 
| 116 | 
            -
            	end
         | 
| 117 | 
            -
              end
         | 
| 118 | 
            -
            end
         | 
    
        data/lib/htmllog.rb
    DELETED
    
    | @@ -1,53 +0,0 @@ | |
| 1 | 
            -
            class HtmlLog
         | 
| 2 | 
            -
            	def initialize
         | 
| 3 | 
            -
            		FileUtils.mkdir("#{Environment.dev_root}/log") if !File.exists?("#{Environment.dev_root}/log")
         | 
| 4 | 
            -
            		@file=File.open("#{Environment.dev_root}/log/rake.html",'w')
         | 
| 5 | 
            -
            		@file.write '<html>'
         | 
| 6 | 
            -
            		@file.write '<body>'
         | 
| 7 | 
            -
            		@file.write '<h1>'
         | 
| 8 | 
            -
            		@file.write "rake"
         | 
| 9 | 
            -
            		ARGV.each do|a|
         | 
| 10 | 
            -
              			puts " #{a}"
         | 
| 11 | 
            -
            		end
         | 
| 12 | 
            -
            		@file.write '</h1>'
         | 
| 13 | 
            -
            		@file.write '<h2>directory:' + File.dirname(__FILE__) + '</h2>'
         | 
| 14 | 
            -
            		@file.write '<h2>time:' + Time.now.to_s + '</h2>'
         | 
| 15 | 
            -
            		@current_task=nil
         | 
| 16 | 
            -
            		@task_commands=Hash.new
         | 
| 17 | 
            -
            	end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            	def finalize
         | 
| 20 | 
            -
            		@file.write('<ul>')
         | 
| 21 | 
            -
            		@task_commands.each{|k,v|
         | 
| 22 | 
            -
            			
         | 
| 23 | 
            -
            			@file.write('<li>')
         | 
| 24 | 
            -
            			@file.write(k)
         | 
| 25 | 
            -
            			@file.write('</li>')
         | 
| 26 | 
            -
            			
         | 
| 27 | 
            -
            		}
         | 
| 28 | 
            -
            		@file.write '</ul>'
         | 
| 29 | 
            -
            		@file.write '</body>'
         | 
| 30 | 
            -
            		@file.write '</html>'
         | 
| 31 | 
            -
            		@file.close
         | 
| 32 | 
            -
            	end
         | 
| 33 | 
            -
             | 
| 34 | 
            -
            	def start_task task
         | 
| 35 | 
            -
            		@current_task=task
         | 
| 36 | 
            -
            		@task_commands[task]=Hash.new
         | 
| 37 | 
            -
            		@task_commands[task][:command_results]=Array.new
         | 
| 38 | 
            -
            	end
         | 
| 39 | 
            -
             | 
| 40 | 
            -
            	def end_task task
         | 
| 41 | 
            -
             | 
| 42 | 
            -
            		@current_task=nil
         | 
| 43 | 
            -
            		#@file
         | 
| 44 | 
            -
            	end
         | 
| 45 | 
            -
             | 
| 46 | 
            -
            	def start_command command
         | 
| 47 | 
            -
             | 
| 48 | 
            -
              	end
         | 
| 49 | 
            -
             | 
| 50 | 
            -
              	def end_command command
         | 
| 51 | 
            -
              		#@task_commands[@current_task][:command_results] << result
         | 
| 52 | 
            -
              	end
         | 
| 53 | 
            -
            end
         | 
    
        data/lib/jsonlog.rb
    DELETED
    
    | @@ -1,18 +0,0 @@ | |
| 1 | 
            -
            require 'json'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            class JsonLog
         | 
| 4 | 
            -
            	def initialize
         | 
| 5 | 
            -
            	end
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            	def finalize
         | 
| 8 | 
            -
            		name='DEV'
         | 
| 9 | 
            -
            		ARGV.each do|a|
         | 
| 10 | 
            -
            			name="#{name}.#{a}"
         | 
| 11 | 
            -
            		end
         | 
| 12 | 
            -
            		name="#{name}.json"
         | 
| 13 | 
            -
            		FileUtils.mkdir("#{DEV[:dev_root]}/log") if !File.exists?("#{DEV[:dev_root]}/log")
         | 
| 14 | 
            -
            		File.open("#{DEV[:dev_root]}/log/#{name}","w") do |f|
         | 
| 15 | 
            -
              			f.write(JSON.pretty_generate(DEV))
         | 
| 16 | 
            -
            		end
         | 
| 17 | 
            -
            	end
         | 
| 18 | 
            -
            end
         | 
    
        data/lib/logger.rb
    DELETED
    
    | @@ -1,37 +0,0 @@ | |
| 1 | 
            -
            require_relative './htmllog.rb'
         | 
| 2 | 
            -
            require_relative './jsonlog.rb'
         | 
| 3 | 
            -
            require_relative './yamllog.rb'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            class Logger
         | 
| 6 | 
            -
            	@@timers=Hash.new
         | 
| 7 | 
            -
            	@@html_log=HtmlLog.new
         | 
| 8 | 
            -
              @@json_log=JsonLog.new
         | 
| 9 | 
            -
              @@yaml_log=YamlLog.new
         | 
| 10 | 
            -
            	def self.start_task task
         | 
| 11 | 
            -
            		@@timers[task]=Timer.new
         | 
| 12 | 
            -
            		Console.announce_task_start task
         | 
| 13 | 
            -
            		@@html_log.start_task task
         | 
| 14 | 
            -
              	end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              	def self.end_task task
         | 
| 17 | 
            -
              		elapsed=@@timers[task].elapsed
         | 
| 18 | 
            -
              		@@html_log.end_task task
         | 
| 19 | 
            -
              	end
         | 
| 20 | 
            -
             | 
| 21 | 
            -
              	def self.finalize
         | 
| 22 | 
            -
              		@@html_log.finalize
         | 
| 23 | 
            -
                  @@json_log.finalize
         | 
| 24 | 
            -
                  @@yaml_log.finalize
         | 
| 25 | 
            -
              	end
         | 
| 26 | 
            -
             | 
| 27 | 
            -
              	def self.start_command command
         | 
| 28 | 
            -
                  Console.start_command command
         | 
| 29 | 
            -
                  //
         | 
| 30 | 
            -
                  @@html_log.start_command command
         | 
| 31 | 
            -
              	end
         | 
| 32 | 
            -
             | 
| 33 | 
            -
              	def self.end_command command
         | 
| 34 | 
            -
                  Console.end_command command
         | 
| 35 | 
            -
                  @@html_log.end_command command
         | 
| 36 | 
            -
              	end
         | 
| 37 | 
            -
            end
         | 
    
        data/lib/msbuild.rb
    DELETED
    
    | @@ -1,41 +0,0 @@ | |
| 1 | 
            -
            # encoding: utf-8
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            require_relative './color.rb'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            # Visual Studio 2008 version 9.0,  solution format version 10.00
         | 
| 6 | 
            -
            # Visual Studio 2010 version 10.0, solution format version 11.00
         | 
| 7 | 
            -
            # Visual Studio 2012 version 11.0, solution format version 12.00
         | 
| 8 | 
            -
            # Visual Studio 2013 version 12.0, solution format version 12.00
         | 
| 9 | 
            -
            class MSBuild < Hash
         | 
| 10 | 
            -
             | 
| 11 | 
            -
              def initialize
         | 
| 12 | 
            -
                self[:vs9]="C:\\Windows\\Microsoft.NET\\Framework\\v3.5\\msbuild.exe"
         | 
| 13 | 
            -
            	  self[:vs12]="C:\\Program Files (x86)\\MSBuild\\12.0\\bin\\msbuild.exe"
         | 
| 14 | 
            -
              end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              def self.get_vs_version(sln_filename)
         | 
| 17 | 
            -
                sln_text=File.read(sln_filename,:encoding=>'UTF-8')
         | 
| 18 | 
            -
                return :vs9 if sln_text.include?('Format Version 10.00')
         | 
| 19 | 
            -
                return :vs12
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
              def self.get_configurations(sln_filename)
         | 
| 23 | 
            -
                configs=Array.new
         | 
| 24 | 
            -
            	  sln_text=File.read(sln_filename,:encoding=>'UTF-8')
         | 
| 25 | 
            -
                sln_text.scan( /= ([\w]+)\|/ ).each{|m|
         | 
| 26 | 
            -
            	  c=m.first.to_s
         | 
| 27 | 
            -
            	  configs << c if !configs.include?(c)
         | 
| 28 | 
            -
            	}
         | 
| 29 | 
            -
            	return configs
         | 
| 30 | 
            -
              end
         | 
| 31 | 
            -
             | 
| 32 | 
            -
              def self.get_platforms(sln_filename)
         | 
| 33 | 
            -
                platforms=Array.new
         | 
| 34 | 
            -
            	  sln_text=File.read(sln_filename,:encoding=>"UTF-8")
         | 
| 35 | 
            -
                sln_text.scan( /= [\w]+\|([\w ]+)/ ).each{|m|
         | 
| 36 | 
            -
            	    p=m.first.to_s
         | 
| 37 | 
            -
            	    platforms << p if !platforms.include?(p)
         | 
| 38 | 
            -
            	  }
         | 
| 39 | 
            -
            	return platforms
         | 
| 40 | 
            -
              end
         | 
| 41 | 
            -
            end
         | 
    
        data/lib/publish.rb
    DELETED
    
    | @@ -1,50 +0,0 @@ | |
| 1 | 
            -
            #require_relative('./commandarray.rb')
         | 
| 2 | 
            -
            require_relative('./environment.rb')
         | 
| 3 | 
            -
            require_relative('./console.rb')
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            class Publish #< CommandArray
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              def initialize
         | 
| 8 | 
            -
                #if(Environment.scm=='git')
         | 
| 9 | 
            -
            	#  artifacts=Artifacts.new
         | 
| 10 | 
            -
            	#  artifacts.each {|artifact|
         | 
| 11 | 
            -
            	#    dest_dir = Environment.dev_root + "/dep/" + Environment.relative_directory + '/' + Environment.branch 
         | 
| 12 | 
            -
            	#    dest = dest_dir + "/" + artifact
         | 
| 13 | 
            -
            	#	dest_dir=File.dirname(dest)
         | 
| 14 | 
            -
            	#	self.add "<%FileUtils.mkdir_p('#{dest_dir}')%>" if (!Dir.exists?(dest_dir))
         | 
| 15 | 
            -
            	#	self.add "<%FileUtils.cp('#{artifact}','#{dest}')%>"
         | 
| 16 | 
            -
            	#  }
         | 
| 17 | 
            -
            	#end
         | 
| 18 | 
            -
              end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
              def update
         | 
| 21 | 
            -
                Console.debug "Publish.update"
         | 
| 22 | 
            -
                if(defined?(DEV_TASKS))
         | 
| 23 | 
            -
            	  if(DEV_TASKS).has_key?(:publish_path)
         | 
| 24 | 
            -
            	    if(DEV_TASKS[:publish_path].include?('svn://') || DEV_TASKS[:publish_path].include?('file:///'))
         | 
| 25 | 
            -
            		  latestRev=Environment.svn_latest_revision 
         | 
| 26 | 
            -
            		  svn_publish_uri="#{DEV_TASKS[:publish_path]}/#{DEV_TASKS[:relative_directory]}-#{latestRev}"
         | 
| 27 | 
            -
            		  local_dir="#{Environment.dev_root}/tmp/#{DEV_TASKS[:relative_directory]}@#{latestRev}"
         | 
| 28 | 
            -
            		  FileUtils.mkdir_p(File.dirname(local_dir)) if(!File.exists?(File.dirname(local_dir)))
         | 
| 29 | 
            -
            		  dep_dir="#{Environment.dev_root}/dep/#{DEV_TASKS[:relative_directory]}@#{latestRev}"
         | 
| 30 | 
            -
            		  svn_info=`svn info #{svn_publish_uri} 2>&1`
         | 
| 31 | 
            -
            		  if(svn_info.include?('URL:'))
         | 
| 32 | 
            -
            		    Console.debug "#{svn_publish_uri} already exists."
         | 
| 33 | 
            -
            		  else
         | 
| 34 | 
            -
            		    Console.debug "adding publish commands.."
         | 
| 35 | 
            -
            		    add "svn mkdir #{svn_publish_uri} --parents -m\"publish\""
         | 
| 36 | 
            -
            			add "svn checkout #{svn_publish_uri} #{local_dir}"
         | 
| 37 | 
            -
            			add "<%Environment.copy_files(DEV_TASKS[:files][:artifact],'#{local_dir}')%>"
         | 
| 38 | 
            -
            			add "<%Environment.svn_add_all('#{local_dir}')%>"
         | 
| 39 | 
            -
            			add "svn commit #{local_dir}@ -m\"publish\""
         | 
| 40 | 
            -
            			add "<%FileUtils.rm_r('#{local_dir}')%>"
         | 
| 41 | 
            -
            		  end
         | 
| 42 | 
            -
            		end
         | 
| 43 | 
            -
            	  end
         | 
| 44 | 
            -
            	end
         | 
| 45 | 
            -
              end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
              def add command
         | 
| 48 | 
            -
                self << command if(!include?(command))
         | 
| 49 | 
            -
              end
         | 
| 50 | 
            -
            end
         | 
    
        data/lib/pull.rb
    DELETED
    
    | @@ -1,15 +0,0 @@ | |
| 1 | 
            -
            #require_relative('./commandarray.rb')
         | 
| 2 | 
            -
            require_relative('./environment.rb')
         | 
| 3 | 
            -
            require 'time'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            class Pull < Array#< CommandArray
         | 
| 6 | 
            -
              def update
         | 
| 7 | 
            -
                if(Environment.scm=='git' && Environment.scm_origin.length > 0 && `git config --list`.include?('user.name='))
         | 
| 8 | 
            -
            	  if(Timer.elapsed_exceeds?("last_pull",60*60*2))
         | 
| 9 | 
            -
            	  #if(Timer.get_elapsed("last_pull").nil? || Timer.get_elapsed("last_pull") > 60*60*2)
         | 
| 10 | 
            -
            	    add "<%`git pull 2>&1`%>"
         | 
| 11 | 
            -
            	    add "<%Timer.set_timestamp('last_pull')%>"
         | 
| 12 | 
            -
            	  end
         | 
| 13 | 
            -
            	end
         | 
| 14 | 
            -
              end
         | 
| 15 | 
            -
            end
         | 
    
        data/lib/push.rb
    DELETED
    
    | @@ -1,12 +0,0 @@ | |
| 1 | 
            -
            require_relative('./push.rb')
         | 
| 2 | 
            -
            require_relative('./environment.rb')
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            class Push #< CommandArray
         | 
| 5 | 
            -
              def update
         | 
| 6 | 
            -
                if(Environment.scm=='git' && `git config --list`.include?('user.name='))
         | 
| 7 | 
            -
                  if(`git diff @{u}`.include?('diff'))
         | 
| 8 | 
            -
            	    self.add "<%`git push 2>&1`%>"
         | 
| 9 | 
            -
            	  end
         | 
| 10 | 
            -
            	end
         | 
| 11 | 
            -
              end
         | 
| 12 | 
            -
            end
         | 
    
        data/lib/settings.rb
    DELETED
    
    | @@ -1,26 +0,0 @@ | |
| 1 | 
            -
            require_relative './environment.rb'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            class Settings < Hash
         | 
| 4 | 
            -
              def initialize
         | 
| 5 | 
            -
                load
         | 
| 6 | 
            -
            	self['colorize']=true if(!self.has_key?('colorize'))
         | 
| 7 | 
            -
            	save
         | 
| 8 | 
            -
              end
         | 
| 9 | 
            -
             | 
| 10 | 
            -
              def filename
         | 
| 11 | 
            -
                Environment.dev_root + "/dev_tasks.settings.json"
         | 
| 12 | 
            -
              end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
              def load
         | 
| 15 | 
            -
                if(File.exists?(filename))
         | 
| 16 | 
            -
            	  hash=JSON.parse(File.read(filename))
         | 
| 17 | 
            -
            	  hash.each {|k,v|
         | 
| 18 | 
            -
            	    self[k]=v
         | 
| 19 | 
            -
            	  }
         | 
| 20 | 
            -
            	end
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
              def save
         | 
| 24 | 
            -
                File.open(filename,'w'){|f| f.write(JSON.dump(self))}
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
            end
         | 
    
        data/lib/setup.rb
    DELETED
    
    | @@ -1,17 +0,0 @@ | |
| 1 | 
            -
            #require_relative('./commandarray.rb')
         | 
| 2 | 
            -
            class Setup #< CommandArray
         | 
| 3 | 
            -
             | 
| 4 | 
            -
              def update
         | 
| 5 | 
            -
                if(defined?(DEV_TASKS))
         | 
| 6 | 
            -
                  DEV_TASKS[:svn_exports].each{|k,v|
         | 
| 7 | 
            -
            	    if(!File.exists?("#{Environment.dev_root}/dep/#{k}"))
         | 
| 8 | 
            -
            	      FileUtils.mkdir_p(File.dirname("#{Environment.dev_root}/dep/#{k}")) if !File.exists?("#{Environment.dev_root}/dep/#{k}")
         | 
| 9 | 
            -
            		  dest="#{Environment.dev_root}/dep/#{k}"
         | 
| 10 | 
            -
            	      add "svn export #{v} #{Environment.dev_root}/dep/#{k}" if !dest.include?("@")
         | 
| 11 | 
            -
            		  add "svn export #{v} #{Environment.dev_root}/dep/#{k}@" if dest.include?("@")
         | 
| 12 | 
            -
                    end
         | 
| 13 | 
            -
            	  }
         | 
| 14 | 
            -
            	end
         | 
| 15 | 
            -
              end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
            end
         | 
    
        data/lib/spec.json
    DELETED
    
    | @@ -1 +0,0 @@ | |
| 1 | 
            -
            {"name":"dev_tasks","version":"1.0.34"}
         | 
    
        data/lib/svnexports.rb
    DELETED
    
    
    
        data/lib/teardown.rb
    DELETED
    
    
    
        data/lib/test.rb
    DELETED
    
    | @@ -1,55 +0,0 @@ | |
| 1 | 
            -
            #require_relative('./commandarray.rb')
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            class Test #< CommandArray
         | 
| 4 | 
            -
             | 
| 5 | 
            -
              def update
         | 
| 6 | 
            -
                # rspec tests, 'rspec --pattern="**/*.spec"'
         | 
| 7 | 
            -
            	  self.add 'rspec' if(Dir.glob("**/*spec.rb").length > 0)
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                test_files=collect_nunit_files
         | 
| 10 | 
            -
            	  if(defined?(DEV_TASKS) && DEV_TASKS.has_key?(:files) && DEV_TASKS[:files].has_key?(:test))
         | 
| 11 | 
            -
                  test_files=DEV_TASKS[:files][:test]
         | 
| 12 | 
            -
            	  end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                if(!test_files.nil?)
         | 
| 15 | 
            -
                	test_files.each {|tf|
         | 
| 16 | 
            -
                		if(tf.include?('.dll'))
         | 
| 17 | 
            -
                		   nunit_dll=tf
         | 
| 18 | 
            -
                		  if(nunit_dll.include?('x86'))
         | 
| 19 | 
            -
                		  	self.add "\"#{Test.nunit_console_x86}\" \"#{Rake.application.original_dir}\\#{nunit_dll}\" /xml:\"#{nunit_dll}.TestResults.xml\""
         | 
| 20 | 
            -
                		  else
         | 
| 21 | 
            -
                		  	self.add "\"#{Test.nunit_console}\" \"#{Rake.application.original_dir}\\#{nunit_dll}\" /xml:\"#{nunit_dll}.TestResults.xml\""
         | 
| 22 | 
            -
                		  end
         | 
| 23 | 
            -
                		end
         | 
| 24 | 
            -
                	}
         | 
| 25 | 
            -
                end
         | 
| 26 | 
            -
              end
         | 
| 27 | 
            -
             | 
| 28 | 
            -
              def collect_nunit_files
         | 
| 29 | 
            -
              	results=Array.new
         | 
| 30 | 
            -
                Dir.glob("*.csproj").each{|p|
         | 
| 31 | 
            -
            	    text = File.read(p)
         | 
| 32 | 
            -
            		if(text.include?("nunit.framework.dll"))
         | 
| 33 | 
            -
            		  # extract AssemblyName of form:  <AssemblyName>MyLibrary.Test</AssemblyName>
         | 
| 34 | 
            -
            		  assemblyName=text[/<AssemblyName>([\w\.]+)</,1]
         | 
| 35 | 
            -
            		  outputPath=text[/Release[.\w\W]+<OutputPath>([\w\.\\]+)</,1]
         | 
| 36 | 
            -
            		  if(!assemblyName.nil? && !outputPath.nil?)
         | 
| 37 | 
            -
            		  	results << "#{outputPath}\\#{assemblyName}.dll".gsub("\\\\","\\").gsub('/','\\')
         | 
| 38 | 
            -
            		  end
         | 
| 39 | 
            -
            		end
         | 
| 40 | 
            -
            	  }
         | 
| 41 | 
            -
            	 results
         | 
| 42 | 
            -
              end
         | 
| 43 | 
            -
             | 
| 44 | 
            -
              def self.nunit_console
         | 
| 45 | 
            -
                nunit="C:\\Program Files (x86)\\NUnit 2.6.4\\bin\\nunit-console.exe"
         | 
| 46 | 
            -
                nunit="C:\\Program Files (x86)\\NUnit 2.6.3\\bin\\nunit-console.exe" if(!File.exists?(nunit))
         | 
| 47 | 
            -
                nunit
         | 
| 48 | 
            -
              end
         | 
| 49 | 
            -
              def self.nunit_console_x86
         | 
| 50 | 
            -
                nunit="C:\\Program Files (x86)\\NUnit 2.6.4\\bin\\nunit-console-x86.exe"
         | 
| 51 | 
            -
                nunit="C:\\Program Files (x86)\\NUnit 2.6.3\\bin\\nunit-console-x86.exe" if(!File.exists?(nunit))
         | 
| 52 | 
            -
                nunit
         | 
| 53 | 
            -
              end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
            end
         | 
    
        data/lib/timer.rb
    DELETED
    
    | @@ -1,41 +0,0 @@ | |
| 1 | 
            -
            class Timer
         | 
| 2 | 
            -
              attr_accessor :start_time
         | 
| 3 | 
            -
             | 
| 4 | 
            -
              def initialize
         | 
| 5 | 
            -
                @start_time=Time.now
         | 
| 6 | 
            -
              end
         | 
| 7 | 
            -
             | 
| 8 | 
            -
              def elapsed # in seconds
         | 
| 9 | 
            -
                return Time.now-@start_time
         | 
| 10 | 
            -
              end
         | 
| 11 | 
            -
             | 
| 12 | 
            -
              def elapsed_str
         | 
| 13 | 
            -
                elapsed_str="[" + "%.0f" %(elapsed) + "s]"
         | 
| 14 | 
            -
              end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              def self.elapsed_exceeds?(name,duration_seconds)
         | 
| 17 | 
            -
                if(Timer.get_elapsed(name).nil? || Timer.get_elapsed(name) > duration_seconds)
         | 
| 18 | 
            -
            	  return true
         | 
| 19 | 
            -
            	end
         | 
| 20 | 
            -
            	return false
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
              def self.get_elapsed(name)
         | 
| 24 | 
            -
                timestamp=get_timestamp(name)
         | 
| 25 | 
            -
            	return Time.now-timestamp if(!timestamp.nil?)
         | 
| 26 | 
            -
            	nil
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
              def self.get_timestamp(name)
         | 
| 30 | 
            -
                dir=Rake.application.original_dir
         | 
| 31 | 
            -
                if(File.exists?("#{DEV[:dev_root]}/log/#{name}.timestamp"))
         | 
| 32 | 
            -
                  return Time.parse(File.read("#{DEV[:dev_root]}/log/#{name}.timestamp").strip)
         | 
| 33 | 
            -
            	end
         | 
| 34 | 
            -
            	nil
         | 
| 35 | 
            -
              end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
              def self.set_timestamp(name)
         | 
| 38 | 
            -
                Dir.mkdir("#{DEV_TASKS[:dev_root]}/log") if(!Dir.exists?("#{DEV_TASKS[:dev_root]}/log"))
         | 
| 39 | 
            -
                File.open("#{DEV_TASKS[:dev_root]}/log/#{name}.timestamp",'w'){|f|f.puts(Time.now.to_s)}
         | 
| 40 | 
            -
              end
         | 
| 41 | 
            -
            end
         |