dev_tasks 0.0.114 → 0.0.115

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,6 +8,7 @@ require_relative './push.rb'
8
8
  require_relative './setup.rb'
9
9
  require_relative './upgrade.rb'
10
10
  require_relative './timer.rb'
11
+ require_relative './verify.rb'
11
12
 
12
13
  class Commands < Hash
13
14
  attr_accessor :build
@@ -20,13 +21,16 @@ class Commands < Hash
20
21
  self[:test] = Test.new
21
22
  self[:add] = Add.new
22
23
  self[:commit] = Commit.new
23
- self[:publish] = Publish.new
24
24
  self[:push] = Push.new
25
+ self[:verify] = Verify.new
26
+ self[:publish] = Publish.new
25
27
  end
26
28
 
27
29
  def update
28
30
  self[:upgrade].update
29
31
  self[:setup].update
32
+ self[:verify].update
33
+ self[:publish].update
30
34
  end
31
35
 
32
36
  def execute_command command
@@ -22,15 +22,14 @@ class DevTasks < Hash
22
22
 
23
23
  def initialize
24
24
  @timer = Timer.new
25
- #hash = JSON.parse File.read("#{File.dirname(__FILE__)}/spec.json")
26
- #self[:dev_tasks_gem]=JSON.parse File.read("#{File.dirname(__FILE__)}/spec.json")
27
25
  self[:name]=pwd.split('/').last#Rake.application.original_dir.split('/').last
28
26
  self[:svn_exports]=SvnExports.new
29
27
  self[:scm]=Environment.scm
28
+ self[:scm_origin]=Environment.scm_origin
30
29
  self[:branch]=Environment.branch
31
30
  self[:src_glob]="**/{*.{rb,feature,spec,cs,c,m,cpp,cxx,h,hpp,i,jam,csproj,vcproj,snk,vcxproj,xcodeproj,plist,xib,sln,filters,xaml,resx,settings,config},Jamfile,.semver,Gemfile,README,LICENSE}"
32
31
  self[:newest_src_file]=Dir.glob(self[:src_glob]).max_by {|f| File.mtime(f)}
33
- self[:command_order]=['pull','upgrade','setup','add','build','test','commit','publish','push']
32
+ self[:command_order]=['pull','upgrade','setup','add','build','test','commit','push','verify','publish']
34
33
  self[:relative_directory]=Environment.relative_directory
35
34
  self[:working_directory]=Environment.working_directory
36
35
  self[:context]=Environment.context
@@ -79,7 +78,6 @@ class DevTasks < Hash
79
78
  def execute_task task
80
79
  sym_task = task.to_sym
81
80
  timer=Timer.new
82
- #start_time=Time.now
83
81
  Console.announce_task_start task
84
82
  if(!self[:commands].has_key?(sym_task))
85
83
  puts "no commands discovered for task " + task
@@ -87,8 +85,6 @@ class DevTasks < Hash
87
85
  self[:commands][sym_task].each {|c| self[:commands].execute_command(c) }
88
86
  end
89
87
  elapsed = timer.elapsed
90
- #end_time=Time.now
91
- #elapsed=end_time-start_time
92
88
  if elapsed > 30
93
89
  elapsed_str="[" + "%.0f" %(elapsed) + "s]"
94
90
  Console.announce_task_end task, elapsed_str
@@ -110,16 +106,6 @@ class DevTasks < Hash
110
106
  dev_task_defaults << key
111
107
  end
112
108
  end
113
-
114
- #if(!Rake::Task.task_defined?('dev_tasks_default'))
115
- # tasklist=""
116
- # dev_task_defaults.each{|t|
117
- # tasklist = tasklist + "," if tasklist.length > 0
118
- # tasklist = tasklist + ":" + t.to_s
119
- # }
120
- # ruby="desc 'dev_tasks_default task [#{tasklist}]';task :dev_tasks_default => [#{tasklist}] do;puts '[:dev_task_default] completed in ' + DEV_TASKS.timer.elapsed_str;end"
121
- # eval(ruby)
122
- #end
123
109
  end
124
110
 
125
111
 
@@ -10,6 +10,29 @@ class Environment < Hash
10
10
  "none"
11
11
  end
12
12
 
13
+ def self.scm_origin
14
+ if(Dir.exists?(".git"))
15
+ `git remote show origin`.scan(/Fetch URL: ([\w:\/.-]+)/).each{|m|
16
+ return m.first.to_s
17
+ }
18
+ end
19
+ if(Dir.exists?(".svn"))
20
+ `svn info`.scan(/URL: ([\w:\/.-]+)/).each{|m|
21
+ return m.first.to_s
22
+ }
23
+ end
24
+ ""
25
+ end
26
+
27
+ def self.svn_latest_revision
28
+ if(Dir.exists?(".svn"))
29
+ `svn info`.scan(/Last Changed Rev: ([\d]+)/).each{|m|
30
+ return m.first.to_s
31
+ }
32
+ end
33
+ ""
34
+ end
35
+
13
36
  def self.dev_root
14
37
  ["DEV_HOME","DEV_ROOT","USERPROFILE","HOME"].each {|v|
15
38
  return ENV[v].gsub('\\','/') unless ENV[v].nil?
@@ -1,7 +1,6 @@
1
1
  require_relative('./environment.rb')
2
2
  require_relative('./artifacts.rb')
3
3
 
4
-
5
4
  class Publish < Array
6
5
 
7
6
  def initialize
@@ -17,6 +16,30 @@ class Publish < Array
17
16
  end
18
17
  end
19
18
 
19
+ def update
20
+ if(defined?(DEV_TASKS))
21
+ if(DEV_TASKS).has_key?(:publish_path)
22
+ if(DEV_TASKS[:publish_path].contains?('svn://'))
23
+ lastestRev=Environment.svn_latest_revision
24
+ svn_publish_uri="#{DEV_TASKS[:publish_path]}/#{DEV_TASKS[:relative_path]}@latestRev"
25
+ local_dir="#{Environment.dev_root}/tmp/#{DEV_TASKS[:relative_path]}@latestRev"
26
+ FileUtils.mkdir_p(File.dirname(local_dir)) if(!File.exists(File.dirname(local_dir)))
27
+ dep_dir="#{Environment.dev_root}/dep/#{DEV_TASKS[:relative_directory]}@#{latestRev}@"
28
+ if(!`svn info #{svn_publish_uri}`.contains?('URL:'))
29
+ add "svn mkdir #{svn_publish_uri} --parents"
30
+ add "svn checkout #{svn_publish_uri} #{local_dir}@"
31
+ DEV_TASKS[:artifacts].each{|a|
32
+ f="#{Environment.dev_root}/tmp/#{a}"
33
+ add "<%File.cp('#{dep_dir}/#{a}','#{local_dir}/#{a}'%>"
34
+ add "svn add #{local_dir}/#{a} --parents"
35
+ }
36
+ add "svn commit #{local_dir} -m\"publish\""
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
20
43
  def add command
21
44
  self << command if(!include?(command))
22
45
  end
@@ -1 +1 @@
1
- {"name":"dev_tasks","version":"0.0.114"}
1
+ {"name":"dev_tasks","version":"0.0.115"}
@@ -0,0 +1,26 @@
1
+ require_relative('./environment.rb')
2
+
3
+ class Verify < Array
4
+
5
+ def initialize
6
+ update
7
+ end
8
+
9
+ def update
10
+ if(defined?(DEV_TASKS))
11
+ if(Environment.scm=='svn')
12
+ lastestRev=Environment.svn_latest_revision
13
+ uri=DEV_TASKS[:scm_origin]+"@"+latestRev
14
+ dep_dir="#{Environment.dev_root}/dep/#{DEV_TASKS[:relative_directory]}@#{latestRev}@"
15
+ if(!File.exists?(dep_dir))
16
+ add "svn export #{uri} #{dep_dir}"
17
+ add "<%Environment.rake('#{dep_dir}','default',true)%>"
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ def add command
24
+ self << command if(!include?(command))
25
+ end
26
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dev_tasks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.114
4
+ version: 0.0.115
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -118,6 +118,7 @@ files:
118
118
  - lib/text.rb
119
119
  - lib/timer.rb
120
120
  - lib/upgrade.rb
121
+ - lib/verify.rb
121
122
  - lib/spec.json
122
123
  - spec/dependencies_spec.rb
123
124
  - spec/dev_tasks_spec.rb