lib/dev_tasks.rb in dev_tasks-1.0.38 vs lib/dev_tasks.rb in dev_tasks-1.0.39
- old
+ new
@@ -1,220 +1,4 @@
-require 'rake'
-require 'rake/clean'
-require 'json'
-require 'dev_commands'
-require 'dev_environment'
-include Rake::DSL
+require_relative('tasks.rb')
-require_relative './environment.rb'
-require_relative './commands.rb'
-require_relative './dependencies.rb'
-require_relative './console.rb'
-require_relative './timer.rb'
-require_relative './settings.rb'
-#require_relative './text.rb'
-require_relative './svnexports.rb'
-require_relative './logger.rb'
-
-CLEAN.include('log','bin/**/*.pdb')
-CLOBBER.include('bin','obj','TestResults','*.gem','bin/**/*.exe')
-
-class DevTasks < Hash
-
- attr_accessor :timer
-
- def initialize
- @timer = Timer.new
- self[:name]=pwd.split('/').last#Rake.application.original_dir.split('/').last
- self[:svn_exports]=SvnExports.new
- self[:scm]=Environment.scm
- self[:scm_origin]=Environment.scm_origin
- self[:branch]=Environment.branch
-
-
- self[:task_order]=['pull','upgrade','setup','add','build','test','commit','push','verify','publish','teardown']
- self[:relative_directory]=Environment.relative_directory
- self[:working_directory]=Environment.working_directory
- self[:context]=Environment.context
- self[:machine]=Environment.machine
- self[:platform]=RUBY_PLATFORM
- self[:dev_root]=Environment.dev_root
- self[:settings]=Settings.new
-
- self[:files]=Hash.new
- #self[:files][:source]=Rake::FileList.new("**/{*.{rb,feature,spec,gemspec,cs,c,m,cpp,cxx,h,hpp,i,jam,csproj,vcproj,snk,vcxproj,xcodeproj,plist,xib,sln,filters,xaml,yml,json,resx,settings,config},Jamfile,.semver,Gemfile,README,LICENSE}")
- self[:files][:source]=Rake::FileList.new("**/{*.{rb,feature,spec,gemspec}}")
- self[:files][:source].include('**/*.{cs,csproj,sln}')
- self[:files][:source].include('**/*.{cpp,cxx,h,hpp,i,c,vcproj,vcxproj,filters,resx,settings,config}')
- self[:files][:source].include('**/*.{m,xcodeproj,xib}')
- self[:files][:source].include('**/*.{xaml,xml,yaml,yml,json,md}')
- self[:files][:source].include('**/{Jamfile,.semver,Gemfile,README,LICENSE}')
- self[:files][:source].exclude("log/**/*.*")
- self[:files][:source].exclude("bin/**/*.*")
- self[:files][:source].exclude("obj/**/*.*")
-
- self[:files][:build]=Rake::FileList.new('**/*.{gemspec,sln}')
-
- self[:files][:artifact]=Rake::FileList.new("**/*.{gem,lib,dll,exe,h,hpp}")
-
-
-
- self[:commands]=Commands.new
- update
- end
-
- def add hash
- hash.each do |key,value|
- self[key]=value if !has_key?(key)
- end
- end
-
- def update
- self[:dependencies]=Dependencies.new if !has_key?(:dependencies)
- allartifactsexist = true
- self[:files][:artifact].each{|f| allartifactsexist=false if !File.exists?(f)}
-
- self[:newest_source_file]=self[:files][:source].max_by {|f| File.mtime(f)}
- self[:newest_artifact_file]=self[:files][:artifact].max_by { |f| File.mtime(f) } if allartifactsexist
-
- self[:commands]=Commands.new if !has_key?(:commands)
- #self[:commands].update
-
- self[:up_to_date] = false
- if(allartifactsexist && !self[:newest_artifact].nil? && !self[:newest_src_file].nil? && File.exists?(self[:newest_artifact]) && File.exists?(self[:newest_src_file]))
- if(File.mtime(self[:newest_artifact]) > File.mtime(self[:newest_src_file]))
- self[:task_order]=['upgrade'] if(File.mtime(self[:newest_artifact]) > File.mtime(self[:newest_src_file]))
- self[:up_to_date]=true
- end
- self[:newest_artifact_file_mtime]=File.mtime(self[:newest_artifact_file]).to_s
- self[:newest_source_file_mtime]=File.mtime(self[:newest_source_file]).to_s
- end
- update_tasks
- end
-
- def execute cmd
- self[:commands].execute_command cmd
- end
-
- def execute_task task
- self[:commands].execute_task task
- end
-
- def define_task task_name
- if(!Rake::Task.task_defined?(task_name))
- ruby="desc '#{DevTasks.description(task_name)} ';task :#{task_name} do;DEV_TASKS.execute_task '#{task_name}';end"
- eval(ruby)
- end
- end
-
- def self.description task_name
- descriptions={
- "add"=>"add untracked files to revision control system",
- "build"=>"executes build commands",
- "test"=>"executes test commands",
- "setup"=>"executes setup commands",
- "commit"=>"commit changes to revision control system"
- }
- if descriptions.has_key?(task_name.to_s)
- descriptions[task_name.to_s]
- else
- "#{task_name} task"
- end
- end
-
- def update_tasks
- dev_task_defaults=Array.new
- self[:commands].each do |key,array|
- #if(array.length > 0)
- define_task key
- dev_task_defaults << key
- #end
- end
- update_task_dependencies
- end
-
- def update_task_dependencies
- eval('task :build=>[:setup]') if Rake::Task.task_defined?(:setup) && Rake::Task.task_defined?(:build)
- eval('task :test=>[:build]') if Rake::Task.task_defined?(:build) && Rake::Task.task_defined?(:test)
- end
-
- def setup_svn_export(uri,dir)
- DEV_TASKS[:commands][:setup] << "svn export #{uri} #{dir}" if(!File.exists?(dir))
- end
-
- def setup_copy(src,dest)
- if(File.exists?(src))
- FileUtils.mkdir_p(File.dirname(dest)) if(!File.exists?(File.dirname(dest)))
- if(!File.exists?(dest))
- DEV_TASKS[:commands][:setup] << "<%FileUtils.cp('#{src}','#{dest}')%>"
- end
- else
- if(src.kind_of?(Array))
- src.each{|s|setup_copy(s,dest)}
- end
- end
- end
-
- def svn_export(dep_dir,uri)
- if(!File.exists?("#{Environment.dev_root}/dep/#{dep_dir}"))
- dest="#{Environment.dev_root}/dep/#{dep_dir}"
- Environment.execute "svn export #{uri} #{Environment.dev_root}/dep/#{dep_dir}" if !dest.include?("@")
- Environment.execute "svn export #{uri} #{Environment.dev_root}/dep/#{dep_dir}@" if dest.include?("@")
- end
- end
-end
-
-DEV_TASKS=DevTasks.new
-DEV=DEV_TASKS
-
-desc 'executes tasks in order of task_order, if they are defined'
-task :dev_tasks_default do
- DEV_TASKS.update
- DEV_TASKS[:task_order].each{|c|
- Rake::Task[c].invoke if(Rake::Task.task_defined?(c))
- }
- puts "Total Time " + DEV_TASKS.timer.elapsed_str
-end
-
-desc 'dev_tasks default'
-task :default do
- Rake::Task[:dev_tasks_default].invoke
- Logger.finalize
-end
-
-desc 'displays information about current rake directory'
-task :info do
- DEV_TASKS.update
- Console.print_hash("",DEV_TASKS)
-end
-
-desc 'displays help for dev_task'
-task :help do
- puts "use rake -T to see available tasks"
-end
-
-#desc 'rake projects defined in DEV_TASKS[:dependencies][:projects]'
-task :rake_dependencies_projects do
- Console.announce_task_start "rake_dependencies_projects"
- DEV_TASKS[:dependencies][:projects].each{|project|
- dir=Environment.dev_root + "/wrk/" + project
- Environment.rake(dir,"default",true) if File.exists?(dir)
- }
-end
-
-#desc 'clobber projects defined in DEV_TASKS[:dependencies][:projects]'
-task :clobber_dependencies_projects do
- Console.announce_task_start "clobber_dependencies_projects"
- DEV_TASKS[:dependencies][:projects].each{|project|
- dir=Environment.dev_root + "/wrk/" + project
- Environment.rake(dir,"clobber",true) if File.exists?(dir)
- }
-end
-
-#desc 'clean projects defined in DEV_TASKS[:dependencies][:projects]'
-task :clean_dependencies_projects do
- Console.announce_task_start "clean_dependencies_projects"
- DEV_TASKS[:dependencies][:projects].each{|project|
- dir=Environment.dev_root + "/wrk/" + project
- Environment.rake(dir,"clean",true) if File.exists?(dir)
- }
-end
+class DevTasks
+end
\ No newline at end of file