dev 2.1.153 → 2.1.154
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.
- checksums.yaml +4 -4
- data/lib/apps/git.rb +207 -208
- data/lib/apps/msbuild.rb +90 -90
- data/lib/apps/nbench.rb +2 -1
- data/lib/apps/nuget.rb +57 -59
- data/lib/apps/svn.rb +137 -143
- data/lib/apps/wix.rb +47 -50
- data/lib/apps/xcodebuild.rb +13 -11
- data/lib/apps/zip.rb +25 -25
- data/lib/apps.rb +3 -1
- data/lib/base/array.rb +66 -64
- data/lib/base/command.rb +237 -238
- data/lib/base/dir.rb +73 -76
- data/lib/base/environment.rb +94 -99
- data/lib/base/file.rb +35 -33
- data/lib/base/gemspec.rb +47 -45
- data/lib/base/giturl.rb +88 -90
- data/lib/base/hash.rb +20 -15
- data/lib/base/history.rb +36 -33
- data/lib/base/internet.rb +22 -20
- data/lib/base/project.rb +410 -423
- data/lib/base/projects.rb +231 -246
- data/lib/base/source.rb +22 -20
- data/lib/base/string.rb +6 -4
- data/lib/base/text.rb +16 -14
- data/lib/base/timeout.rb +29 -28
- data/lib/base/timer.rb +23 -19
- data/lib/base/version.rb +68 -72
- data/lib/base.rb +5 -3
- data/lib/commands.rb +47 -43
- data/lib/dev.config.rb +3 -2
- data/lib/dev.rb +65 -66
- data/lib/tasks/add.rb +34 -40
- data/lib/tasks/analyze.rb +17 -15
- data/lib/tasks/build.rb +101 -103
- data/lib/tasks/clean.rb +6 -4
- data/lib/tasks/clobber.rb +20 -18
- data/lib/tasks/commit.rb +42 -44
- data/lib/tasks/default.rb +41 -39
- data/lib/tasks/doc.rb +10 -8
- data/lib/tasks/info.rb +8 -7
- data/lib/tasks/package.rb +23 -20
- data/lib/tasks/publish.rb +20 -25
- data/lib/tasks/pull.rb +9 -9
- data/lib/tasks/push.rb +11 -13
- data/lib/tasks/setup.rb +180 -183
- data/lib/tasks/test.rb +121 -107
- data/lib/tasks/update.rb +13 -11
- data/lib/tasks.rb +38 -42
- metadata +7 -9
- 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(
|
4
|
+
require_relative("command")
|
3
5
|
|
4
6
|
class Gemspec
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
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
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
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
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
-
|
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
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
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
|
-
|
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
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
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
|
-
|
78
|
-
|
79
|
-
|
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
|
-
|
84
|
-
|
85
|
-
|
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
|
-
|
97
|
-
|
98
|
-
|
98
|
+
def self.get_build_dir_tag(url, tag)
|
99
|
+
"#{Environment.dev_root}/build/#{get_relative_dir(url)}-#{tag}"
|
100
|
+
end
|
99
101
|
|
100
|
-
|
101
|
-
|
102
|
-
|
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
|
-
|
5
|
-
|
6
|
+
def execute(value = nil)
|
7
|
+
each do |k, v|
|
6
8
|
v.update if v.respond_to?(:update)
|
7
|
-
if
|
8
|
-
|
9
|
-
|
10
|
-
|
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
|
-
|
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
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
35
|
-
|
36
|
-
|
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
|
4
|
-
require
|
5
|
-
class Internet
|
5
|
+
require "open-uri"
|
6
|
+
require "timeout"
|
6
7
|
|
7
|
-
|
8
|
+
class Internet
|
9
|
+
@@available = true
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
+
def self.available?
|
12
|
+
return @@available unless @@available.nil?
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
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
|