dev 2.1.153 → 2.1.154

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/lib/apps/git.rb +207 -208
  3. data/lib/apps/msbuild.rb +90 -90
  4. data/lib/apps/nbench.rb +2 -1
  5. data/lib/apps/nuget.rb +57 -59
  6. data/lib/apps/svn.rb +137 -143
  7. data/lib/apps/wix.rb +47 -50
  8. data/lib/apps/xcodebuild.rb +13 -11
  9. data/lib/apps/zip.rb +25 -25
  10. data/lib/apps.rb +3 -1
  11. data/lib/base/array.rb +66 -64
  12. data/lib/base/command.rb +237 -238
  13. data/lib/base/dir.rb +73 -76
  14. data/lib/base/environment.rb +94 -99
  15. data/lib/base/file.rb +35 -33
  16. data/lib/base/gemspec.rb +47 -45
  17. data/lib/base/giturl.rb +88 -90
  18. data/lib/base/hash.rb +20 -15
  19. data/lib/base/history.rb +36 -33
  20. data/lib/base/internet.rb +22 -20
  21. data/lib/base/project.rb +410 -423
  22. data/lib/base/projects.rb +231 -246
  23. data/lib/base/source.rb +22 -20
  24. data/lib/base/string.rb +6 -4
  25. data/lib/base/text.rb +16 -14
  26. data/lib/base/timeout.rb +29 -28
  27. data/lib/base/timer.rb +23 -19
  28. data/lib/base/version.rb +68 -72
  29. data/lib/base.rb +5 -3
  30. data/lib/commands.rb +47 -43
  31. data/lib/dev.config.rb +3 -2
  32. data/lib/dev.rb +65 -66
  33. data/lib/tasks/add.rb +34 -40
  34. data/lib/tasks/analyze.rb +17 -15
  35. data/lib/tasks/build.rb +101 -103
  36. data/lib/tasks/clean.rb +6 -4
  37. data/lib/tasks/clobber.rb +20 -18
  38. data/lib/tasks/commit.rb +42 -44
  39. data/lib/tasks/default.rb +41 -39
  40. data/lib/tasks/doc.rb +10 -8
  41. data/lib/tasks/info.rb +8 -7
  42. data/lib/tasks/package.rb +23 -20
  43. data/lib/tasks/publish.rb +20 -25
  44. data/lib/tasks/pull.rb +9 -9
  45. data/lib/tasks/push.rb +11 -13
  46. data/lib/tasks/setup.rb +180 -183
  47. data/lib/tasks/test.rb +121 -107
  48. data/lib/tasks/update.rb +13 -11
  49. data/lib/tasks.rb +38 -42
  50. metadata +7 -9
  51. data/bin/dev +0 -3
data/lib/base/gemspec.rb CHANGED
@@ -1,51 +1,53 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts __FILE__ if defined?(DEBUG)
2
- require_relative('command.rb')
4
+ require_relative("command")
3
5
 
4
6
  class Gemspec
5
- def self.update gemspec_file
6
- Text.replace_in_file gemspec_file,
7
- /('\d{4}-\d{2}-\d{2}')/,
8
- "'#{Time.now.strftime('%Y-%m-%d')}'"
9
- end
10
-
11
- def self.gemfile gemspec_file
12
- spec=Gem::Specification.load(gemspec_file)
13
- return "#{spec.name}-#{spec.version}.gem" if !spec.nil?
14
- return ""
15
- end
16
-
17
- def self.version gemspec_file
18
- spec=Gem::Specification.load(gemspec_file)
19
- return spec.version.to_s
20
- end
7
+ def self.update(gemspec_file)
8
+ Text.replace_in_file gemspec_file,
9
+ /('\d{4}-\d{2}-\d{2}')/,
10
+ "'#{Time.now.strftime("%Y-%m-%d")}'"
11
+ end
21
12
 
22
- def self.latest_published_version gemname
23
- scan=`gem list -r #{gemname}`.scan(/^dev\s*\(([\d.]+)\)/)
24
- if(!scan.nil?)
25
- return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
26
- end
27
- ''
28
- end
13
+ def self.gemfile(gemspec_file)
14
+ spec = Gem::Specification.load(gemspec_file)
15
+ return "#{spec.name}-#{spec.version}.gem" unless spec.nil?
16
+
17
+ ""
18
+ end
19
+
20
+ def self.version(gemspec_file)
21
+ spec = Gem::Specification.load(gemspec_file)
22
+ spec.version.to_s
23
+ end
29
24
 
30
- def self.published_version gemspec_file
31
- published_version=''
32
- spec=Gem::Specification.load(gemspec_file)
33
- begin
34
- published_version = latest_published_version spec.name# `gem list -r #{spec.name}`.scan(/\((\d+.\d+.\d+)\)/)[0][0]
35
- rescue
36
- published_version=''
37
- end
38
- published_version
25
+ def self.latest_published_version(gemname)
26
+ scan = `gem list -r #{gemname}`.scan(/^dev\s*\(([\d.]+)\)/)
27
+ return scan[0][0] if !scan.nil? && (scan.length.positive? && !scan[0].nil? && scan[0].length.positive?)
28
+
29
+ ""
30
+ end
31
+
32
+ def self.published_version(gemspec_file)
33
+ published_version = ""
34
+ spec = Gem::Specification.load(gemspec_file)
35
+ begin
36
+ published_version = latest_published_version spec.name # `gem list -r #{spec.name}`.scan(/\((\d+.\d+.\d+)\)/)[0][0]
37
+ rescue StandardError
38
+ published_version = ""
39
39
  end
40
- def self.published? gemspec_file
41
- published_version(gemspec_file)==version(gemspec_file) ? true : false
42
- end
43
-
44
- def self.normalize gemspec_file
45
- spec=Gem::Specification.load(gemspec_file)
46
- File.open(gemspec_file,'w'){|f|f.write(spec.to_ruby)}
47
- end
48
-
49
- def self.upgrade gemspec_file
50
- end
51
- end
40
+ published_version
41
+ end
42
+
43
+ def self.published?(gemspec_file)
44
+ published_version(gemspec_file) == version(gemspec_file)
45
+ end
46
+
47
+ def self.normalize(gemspec_file)
48
+ spec = Gem::Specification.load(gemspec_file)
49
+ File.open(gemspec_file, "w") { |f| f.write(spec.to_ruby) }
50
+ end
51
+
52
+ def self.upgrade(gemspec_file); end
53
+ end
data/lib/base/giturl.rb CHANGED
@@ -1,107 +1,105 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class GitUrl
4
+ def self.pull(url)
5
+ if url.is_a?(Array)
6
+ url.each { |u| GitUrl.pull u }
7
+ else
8
+ puts " "
9
+ work_dir = get_work_dir(url)
10
+ unless Dir.exist?(work_dir)
11
+ puts "git clone #{url} #{work_dir}"
12
+ puts `git clone #{url} #{work_dir}`
13
+ end
2
14
 
3
- def self.pull url
4
- if(url.kind_of?(Array))
5
- url.each{|u| GitUrl.pull u}
6
- else
7
- puts ' '
8
- work_dir = get_work_dir(url)
9
- if(!Dir.exists?(work_dir))
10
- puts "git clone #{url} #{work_dir}"
11
- puts `git clone #{url} #{work_dir}`
12
- end
13
-
14
- Dir.chdir(work_dir) do
15
- puts "git pull (#{work_dir})"
16
- puts `git pull`
17
- end
18
- end
15
+ Dir.chdir(work_dir) do
16
+ puts "git pull (#{work_dir})"
17
+ puts `git pull`
18
+ end
19
19
  end
20
+ end
20
21
 
21
- def self.build url
22
+ def self.build(url)
23
+ if url.is_a?(Array)
24
+ url.each { |u| GitUrl.build u }
25
+ else
26
+ GitUrl.pull url
27
+ puts "build #{url}"
28
+ work_dir = get_work_dir(url)
29
+ puts "work_dir #{work_dir}"
22
30
 
23
- if(url.kind_of?(Array))
24
- url.each{|u| GitUrl.build u}
25
- else
26
- GitUrl.pull url
27
- puts "build #{url}"
28
- work_dir = get_work_dir(url)
29
- puts "work_dir #{work_dir}"
31
+ Dir.chdir(work_dir) do
32
+ puts "rake #{work_dir}"
33
+ puts `rake`
34
+ puts "rake clobber"
35
+ puts `rake clobber`
36
+ end
37
+ end
38
+ end
30
39
 
31
- Dir.chdir(work_dir) do
32
- puts "rake #{work_dir}"
33
- puts `rake`
34
- puts "rake clobber"
35
- puts `rake clobber`
36
- end
37
- end
40
+ def self.update_build_repo(url)
41
+ local_dir = "#{Environment.dev_root}/build/#{get_relative_dir(url)}"
42
+ unless Dir.exist?(local_dir)
43
+ puts "git clone #{url} #{local_dir}"
44
+ puts `git clone #{url} #{local_dir}`
38
45
  end
46
+ stags = ""
47
+ Dir.chdir(local_dir) do
48
+ puts `git pull`
49
+ end
50
+ end
39
51
 
40
- def self.update_build_repo url
41
- local_dir = Environment.dev_root + "/build/" + get_relative_dir(url)
42
- if(!Dir.exists?(local_dir))
43
- puts "git clone #{url} #{local_dir}"
44
- puts `git clone #{url} #{local_dir}`
45
- end
46
- stags=''
47
- Dir.chdir(local_dir) do
48
- puts `git pull`
49
- end
52
+ def self.build_tags(url)
53
+ if url.is_a?(Array)
54
+ url.each { |u| GitUrl.build_tags u }
55
+ else
56
+ puts "GitUrl.build_tags #{url}"
57
+ local_dir = "#{Environment.dev_root}/build/#{get_relative_dir(url)}"
58
+ unless Dir.exist?(local_dir)
59
+ puts "git clone #{url} #{local_dir}"
60
+ puts `git clone #{url} #{local_dir}`
61
+ end
62
+ stags = ""
63
+ Dir.chdir(local_dir) do
64
+ puts `git pull`
65
+ stags = `git tag`.gsub('\r', "")
66
+ end
67
+ tags = stags.split("\n").reverse
68
+ puts "tags: #{tags}"
69
+ tags.each do |tag|
70
+ build_tag url, tag.strip
71
+ end
50
72
  end
73
+ end
51
74
 
52
- def self.build_tags url
75
+ def self.build_tag(url, tag)
76
+ build_dir = get_build_dir_tag(url, tag)
77
+ unless Dir.exist?(build_dir)
78
+ puts "git clone -b #{tag} --single-branch --depth 1 #{url} #{build_dir}"
79
+ puts `git clone -b #{tag} --single-branch --depth 1 #{url} #{build_dir}`
53
80
 
54
- if(url.kind_of?(Array))
55
- url.each{|u| GitUrl.build_tags u}
56
- else
57
- puts "GitUrl.build_tags #{url}"
58
- local_dir = Environment.dev_root + "/build/" + get_relative_dir(url)
59
- if(!Dir.exists?(local_dir))
60
- puts "git clone #{url} #{local_dir}"
61
- puts `git clone #{url} #{local_dir}`
62
- end
63
- stags=''
64
- Dir.chdir(local_dir) do
65
- puts `git pull`
66
- stags = `git tag`.gsub('\r','')
67
-
68
- end
69
- tags = stags.split("\n").reverse
70
- puts "tags: #{tags}"
71
- tags.each{|tag|
72
- build_tag url, tag.strip
73
- }
81
+ if Dir.exist?(build_dir)
82
+ Dir.chdir(build_dir) do
83
+ puts "rake #{build_dir}"
84
+ puts `rake`
74
85
  end
86
+ end
75
87
  end
88
+ end
76
89
 
77
- def self.build_tag url, tag
78
- build_dir = get_build_dir_tag(url,tag)
79
- if(!Dir.exists?(build_dir))
80
- puts "git clone -b #{tag} --single-branch --depth 1 #{url} #{build_dir}"
81
- puts `git clone -b #{tag} --single-branch --depth 1 #{url} #{build_dir}`
90
+ def self.get_work_dir(url)
91
+ "#{Environment.dev_root}/work/#{get_relative_dir(url)}"
92
+ end
82
93
 
83
- if(Dir.exists?(build_dir))
84
- Dir.chdir(build_dir) do
85
- puts "rake #{build_dir}"
86
- puts `rake`
87
- end
88
- end
89
- end
90
- end
91
-
92
- def self.get_work_dir url
93
- Environment.dev_root + "/work/" + get_relative_dir(url)
94
- end
94
+ def self.get_build_dir(url)
95
+ "#{Environment.dev_root}/build/#{get_relative_dir(url)}"
96
+ end
95
97
 
96
- def self.get_build_dir url
97
- Environment.dev_root + "/build/" + get_relative_dir(url)
98
- end
98
+ def self.get_build_dir_tag(url, tag)
99
+ "#{Environment.dev_root}/build/#{get_relative_dir(url)}-#{tag}"
100
+ end
99
101
 
100
- def self.get_build_dir_tag url, tag
101
- Environment.dev_root + "/build/" + get_relative_dir(url) + "-#{tag}"
102
- end
103
-
104
- def self.get_relative_dir url
105
- url.gsub('http://','').gsub('https://','').gsub('.git','')
106
- end
107
- end
102
+ def self.get_relative_dir(url)
103
+ url.gsub("http://", "").gsub("https://", "").gsub(".git", "")
104
+ end
105
+ end
data/lib/base/hash.rb CHANGED
@@ -1,21 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts __FILE__ if defined?(DEBUG)
2
4
 
3
5
  class Hash
4
- def execute value=nil
5
- self.each{|k,v|
6
+ def execute(value = nil)
7
+ each do |k, v|
6
8
  v.update if v.respond_to?(:update)
7
- if(v.is_a?(Array) && v.length==0)
8
- self.delete k
9
- else
10
- v.execute(value) if v.respond_to?(:execute)
9
+ if v.is_a?(Array) && v.length.zero?
10
+ delete k
11
+ elsif v.respond_to?(:execute)
12
+ v.execute(value)
11
13
  end
12
- }
13
- end
14
- def to_html
15
- [
16
- '<div>',
17
- map { |k, v| ["<br/><div><strong>#{k}</strong>", v.respond_to?(:to_html) ? v.to_html : "<span>#{v}</span></div><br/>"] },
18
- '</div>'
19
- ].join
20
14
  end
21
- end
15
+ end
16
+
17
+ def to_html
18
+ [
19
+ "<div>",
20
+ map do |k, v|
21
+ ["<br/><div><strong>#{k}</strong>", v.respond_to?(:to_html) ? v.to_html : "<span>#{v}</span></div><br/>"]
22
+ end,
23
+ "</div>",
24
+ ].join
25
+ end
26
+ end
data/lib/base/history.rb CHANGED
@@ -1,39 +1,42 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts __FILE__ if defined?(DEBUG)
2
4
 
3
5
  class History
4
- attr_accessor :dev
6
+ attr_accessor :dev
7
+
8
+ def initialize(dev = nil)
9
+ @dev = dev
10
+ @dev = Dev.new if @dev.nil?
11
+ end
12
+
13
+ # .0. for 0 exit codes
14
+ # .X. for non 0 exit codes
15
+ # project name is contained in directory name
16
+ def get_commands(pattern)
17
+ commands = []
18
+ Dir.chdir(@dev.log_dir) do
19
+ Dir.glob("*#{pattern.gsub("/", "-")}*.*").each do |logfile|
20
+ commands << Command.new(JSON.parse(IO.read(logfile)))
21
+ end
22
+ end
23
+ commands
24
+ end
5
25
 
6
- def initialize dev=nil
7
- @dev=dev
8
- @dev=Dev.new if @dev.nil?
9
- end
10
-
11
- # .0. for 0 exit codes
12
- # .X. for non 0 exit codes
13
- # project name is contained in directory name
14
- def get_commands pattern
15
- commands=Array.new
16
- Dir.chdir(@dev.log_dir) do
17
- Dir.glob("*#{pattern.gsub('/','-')}*.*").each{|logfile|
18
- commands << Command.new(JSON.parse(IO.read(logfile)))
19
- }
20
- end
21
- commands
22
- end
26
+ def add_command(command)
27
+ code = "0"
28
+ code = "X" if command[:exit_code] != 0
29
+ directory = command[:directory].gsub(@dev.root_dir, "").gsub("/", "-")
30
+ name = "#{command[:input]}.#{code}.#{directory}.json"
31
+ filename = "#{@dev.log_dir}/#{name}"
32
+ puts "add command #{filename}" if @dev.debug?
33
+ File.open(filename, "w") { |f| f.write(command.to_json) }
34
+ end
23
35
 
24
- def add_command command
25
- code="0"
26
- code="X" if command[:exit_code] !=0
27
- directory=command[:directory].gsub(@dev.root_dir,'').gsub('/','-')
28
- name="#{command[:input]}.#{code}.#{directory}.json"
29
- filename="#{@dev.log_dir}/#{name}"
30
- puts "add command #{filename}" if @dev.debug?
31
- File.open(filename,'w'){|f|f.write(command.to_json)}
32
- end
36
+ def get_wrk_command(project_fullname)
37
+ commands = get_commands(project_fullname.to_s.gsub("/", "-"))
38
+ return commands[0] if commands.length.positive?
33
39
 
34
- def get_wrk_command project_fullname
35
- commands=get_commands("#{project_fullname}".gsub('/','-'))
36
- return commands[0] if commands.length > 0
37
- nil
38
- end
39
- end
40
+ nil
41
+ end
42
+ end
data/lib/base/internet.rb CHANGED
@@ -1,25 +1,27 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts __FILE__ if defined?(DEBUG)
2
4
 
3
- require 'open-uri'
4
- require 'timeout'
5
- class Internet
5
+ require "open-uri"
6
+ require "timeout"
6
7
 
7
- @@available=true
8
+ class Internet
9
+ @@available = true
8
10
 
9
- def self.available?
10
- return @@available if !@@available.nil?
11
+ def self.available?
12
+ return @@available unless @@available.nil?
11
13
 
12
- begin
13
- index=open('http://www.google.com').read
14
- if index.include?('<Title>Google')
15
- @@available = true
16
- else
17
- puts "open('http://www.google.com') returned false"
18
- end
19
- rescue Exception => e
20
- puts "open('http://www.google.com') raised an exception: #{e.to_s}"
21
- @@available = false
22
- end
23
- @@available
24
- end
25
- end
14
+ begin
15
+ index = open("http://www.google.com").read
16
+ if index.include?("<Title>Google")
17
+ @@available = true
18
+ else
19
+ puts "open('http://www.google.com') returned false"
20
+ end
21
+ rescue Exception => e
22
+ puts "open('http://www.google.com') raised an exception: #{e}"
23
+ @@available = false
24
+ end
25
+ @@available
26
+ end
27
+ end