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/projects.rb
CHANGED
@@ -1,257 +1,242 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
puts DELIMITER if defined?(DEBUG)
|
2
4
|
puts __FILE__ if defined?(DEBUG)
|
3
5
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require_relative(
|
7
|
-
require_relative(
|
8
|
-
require_relative(
|
9
|
-
require_relative(
|
6
|
+
require "json"
|
7
|
+
require "rake"
|
8
|
+
require_relative("environment")
|
9
|
+
require_relative("project")
|
10
|
+
require_relative("../apps/git")
|
11
|
+
require_relative("../apps/svn")
|
10
12
|
|
11
13
|
class Projects < Hash
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
35
|
-
project
|
14
|
+
attr_accessor :env
|
15
|
+
|
16
|
+
def initialize(env = nil)
|
17
|
+
@env = env if env.is_a?(Environment)
|
18
|
+
@env = Environment.new if @env.nil?
|
19
|
+
open
|
20
|
+
end
|
21
|
+
|
22
|
+
def filename
|
23
|
+
"#{@env.root_dir}/data/Projects.json"
|
24
|
+
end
|
25
|
+
|
26
|
+
def current
|
27
|
+
fullname = Rake.application.original_dir.gsub("#{Environment.default.wrk_dir}/", "")
|
28
|
+
if key? fullname
|
29
|
+
self[fullname]
|
30
|
+
else
|
31
|
+
project = nil
|
32
|
+
begin
|
33
|
+
project = Project.new(Project.get_url, fullname)
|
34
|
+
rescue StandardError
|
35
|
+
project = nil
|
36
36
|
end
|
37
|
+
project
|
37
38
|
end
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
def get_projects value=''
|
58
|
-
puts "get_projects #{value.to_s}" if @env.debug?
|
59
|
-
puts "get_project total project count #{self.length}" if @env.debug?
|
60
|
-
projects=Array.new
|
61
|
-
filter=''
|
62
|
-
filter=value.to_s if !value.nil? && value.kind_of?(String)
|
63
|
-
filter=value[0].to_s if !value.nil? && value.kind_of?(Array) && !value[0].to_s.include?('=')
|
64
|
-
|
65
|
-
puts "get_project filter '#{filter}'" if @env.debug?
|
66
|
-
self.each{|k,v|
|
67
|
-
puts " checking project #{k}" if @env.debug?
|
68
|
-
puts " v.class #{v.class}" if @env.debug?
|
69
|
-
if(filter.length==0 || k.include?(filter))
|
70
|
-
if(v.kind_of?(Project))
|
71
|
-
projects << v
|
72
|
-
v.env=@env
|
73
|
-
end
|
74
|
-
end
|
75
|
-
}
|
76
|
-
projects
|
39
|
+
end
|
40
|
+
|
41
|
+
def save
|
42
|
+
Dir.make File.dirname(filename) unless File.exist? File.dirname(filename)
|
43
|
+
File.open(filename, "w") { |f| f.write(JSON.pretty_generate(self)) }
|
44
|
+
end
|
45
|
+
|
46
|
+
def open
|
47
|
+
if File.exist? filename
|
48
|
+
JSON.parse(IO.read(filename)).each do |k, v|
|
49
|
+
self[k] = if v.is_a?(Project)
|
50
|
+
v
|
51
|
+
else
|
52
|
+
Project.new(v)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
# update_state
|
77
56
|
end
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
57
|
+
end
|
58
|
+
|
59
|
+
def get_projects(value = "")
|
60
|
+
puts "get_projects #{value}" if @env.debug?
|
61
|
+
puts "get_project total project count #{length}" if @env.debug?
|
62
|
+
projects = []
|
63
|
+
filter = ""
|
64
|
+
filter = value.to_s if !value.nil? && value.is_a?(String)
|
65
|
+
filter = value[0].to_s if !value.nil? && value.is_a?(Array) && !value[0].to_s.include?("=")
|
66
|
+
|
67
|
+
puts "get_project filter '#{filter}'" if @env.debug?
|
68
|
+
each do |k, v|
|
69
|
+
puts " checking project #{k}" if @env.debug?
|
70
|
+
puts " v.class #{v.class}" if @env.debug?
|
71
|
+
if (filter.length.zero? || k.include?(filter)) && v.is_a?(Project)
|
72
|
+
projects << v
|
73
|
+
v.env = @env
|
74
|
+
end
|
89
75
|
end
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
end
|
103
|
-
|
104
|
-
def help args
|
76
|
+
projects
|
77
|
+
end
|
78
|
+
|
79
|
+
def add(args)
|
80
|
+
url = args[0]
|
81
|
+
project = Project.new(url)
|
82
|
+
project[:fullname] = args[1] if args.length > 1
|
83
|
+
project.set_timeout args[2] if args.length > 2
|
84
|
+
if !key?(project[:fullname]) && project[:fullname].length.positive?
|
85
|
+
@env.out "adding #{project.fullname}\n"
|
86
|
+
self[project.fullname] = project
|
87
|
+
save
|
105
88
|
end
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
rescue => error
|
116
|
-
puts "error raised during work #{project.fullname}"
|
117
|
-
puts "--------------------------------------------"
|
118
|
-
puts error
|
119
|
-
puts "--------------------------------------------"
|
120
|
-
end
|
121
|
-
}
|
122
|
-
exit_code
|
123
|
-
end
|
124
|
-
|
125
|
-
def info args
|
126
|
-
projects=get_projects args
|
127
|
-
puts "collecting info for #{projects.length} projects..." if @env.debug?
|
128
|
-
exit_code=0
|
129
|
-
projects.each{|project|
|
130
|
-
begin
|
131
|
-
result=project.info
|
132
|
-
exit_code=result.exit_code if(result.exit_code!=0)
|
133
|
-
rescue => error
|
134
|
-
puts "error raised during work #{project.fullname}"
|
135
|
-
puts "--------------------------------------------"
|
136
|
-
puts error
|
137
|
-
puts "--------------------------------------------"
|
138
|
-
end
|
139
|
-
}
|
140
|
-
exit_code
|
141
|
-
end
|
142
|
-
|
143
|
-
def list args
|
144
|
-
projects=get_projects args
|
145
|
-
puts "listing #{projects.length} projects..." if @env.debug?
|
146
|
-
projects.each{|project|
|
147
|
-
project.list
|
148
|
-
|
149
|
-
}
|
150
|
-
return 0
|
151
|
-
end
|
152
|
-
|
153
|
-
def make args
|
154
|
-
projects=get_projects args
|
155
|
-
puts "making #{projects.length} projects..." if @env.debug?
|
156
|
-
exit_code=0
|
157
|
-
projects.each{|project|
|
158
|
-
begin
|
159
|
-
result=project.make
|
160
|
-
exit_code=result.exit_code if(result.exit_code!=0)
|
161
|
-
rescue => error
|
162
|
-
puts "error raised during make #{project.fullname}"
|
163
|
-
puts "--------------------------------------------"
|
164
|
-
puts error
|
165
|
-
puts "--------------------------------------------"
|
166
|
-
end
|
167
|
-
}
|
168
|
-
exit_code
|
169
|
-
end
|
170
|
-
|
171
|
-
def clobber args
|
172
|
-
projects=get_projects args
|
173
|
-
puts "clobbering #{projects.length} projects..." if @env.debug?
|
174
|
-
projects.each{|project|
|
175
|
-
begin
|
176
|
-
project.clobber
|
177
|
-
#Dir.remove_empty @env.wrk_dir
|
178
|
-
rescue => error
|
179
|
-
puts "error raised during clobber #{project.fullname}"
|
180
|
-
puts "--------------------------------------------"
|
181
|
-
puts error
|
182
|
-
puts "--------------------------------------------"
|
183
|
-
end
|
184
|
-
}
|
89
|
+
end
|
90
|
+
|
91
|
+
def remove(args)
|
92
|
+
projects = get_projects args
|
93
|
+
puts "removing #{projects.length} projects..." if @env.debug?
|
94
|
+
remove_keys = []
|
95
|
+
projects.each do |project|
|
96
|
+
project.clobber
|
97
|
+
remove_keys << project.fullname
|
185
98
|
end
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
99
|
+
remove_keys.each { |key| delete(key) }
|
100
|
+
save
|
101
|
+
0
|
102
|
+
end
|
103
|
+
|
104
|
+
def help(args); end
|
105
|
+
|
106
|
+
def work(args)
|
107
|
+
projects = get_projects args
|
108
|
+
puts "working #{projects.length} projects..." if @env.debug?
|
109
|
+
exit_code = 0
|
110
|
+
projects.each do |project|
|
111
|
+
result = project.work
|
112
|
+
exit_code = result.exit_code if result.exit_code != 0
|
113
|
+
rescue StandardError => e
|
114
|
+
puts "error raised during work #{project.fullname}"
|
115
|
+
puts "--------------------------------------------"
|
116
|
+
puts e
|
117
|
+
puts "--------------------------------------------"
|
118
|
+
end
|
119
|
+
exit_code
|
120
|
+
end
|
121
|
+
|
122
|
+
def info(args)
|
123
|
+
projects = get_projects args
|
124
|
+
puts "collecting info for #{projects.length} projects..." if @env.debug?
|
125
|
+
exit_code = 0
|
126
|
+
projects.each do |project|
|
127
|
+
result = project.info
|
128
|
+
exit_code = result.exit_code if result.exit_code != 0
|
129
|
+
rescue StandardError => e
|
130
|
+
puts "error raised during work #{project.fullname}"
|
131
|
+
puts "--------------------------------------------"
|
132
|
+
puts e
|
133
|
+
puts "--------------------------------------------"
|
134
|
+
end
|
135
|
+
exit_code
|
136
|
+
end
|
137
|
+
|
138
|
+
def list(args)
|
139
|
+
projects = get_projects args
|
140
|
+
puts "listing #{projects.length} projects..." if @env.debug?
|
141
|
+
projects.each(&:list)
|
142
|
+
0
|
143
|
+
end
|
144
|
+
|
145
|
+
def make(args)
|
146
|
+
projects = get_projects args
|
147
|
+
puts "making #{projects.length} projects..." if @env.debug?
|
148
|
+
exit_code = 0
|
149
|
+
projects.each do |project|
|
150
|
+
result = project.make
|
151
|
+
exit_code = result.exit_code if result.exit_code != 0
|
152
|
+
rescue StandardError => e
|
153
|
+
puts "error raised during make #{project.fullname}"
|
154
|
+
puts "--------------------------------------------"
|
155
|
+
puts e
|
156
|
+
puts "--------------------------------------------"
|
157
|
+
end
|
158
|
+
exit_code
|
159
|
+
end
|
160
|
+
|
161
|
+
def clobber(args)
|
162
|
+
projects = get_projects args
|
163
|
+
puts "clobbering #{projects.length} projects..." if @env.debug?
|
164
|
+
projects.each do |project|
|
165
|
+
project.clobber
|
166
|
+
# Dir.remove_empty @env.wrk_dir
|
167
|
+
rescue StandardError => e
|
168
|
+
puts "error raised during clobber #{project.fullname}"
|
169
|
+
puts "--------------------------------------------"
|
170
|
+
puts e
|
171
|
+
puts "--------------------------------------------"
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
def update(args)
|
176
|
+
projects = get_projects args
|
177
|
+
puts "updating #{projects.length} projects..." if @env.debug?
|
178
|
+
projects.each do |project|
|
179
|
+
puts "updating #{project.fullname}" if @env.debug?
|
180
|
+
result = project.update
|
181
|
+
exit_code = result.exit_code if result.exit_code != 0
|
182
|
+
rescue StandardError => e
|
183
|
+
puts "error raised during update #{project.fullname}"
|
184
|
+
puts "--------------------------------------------"
|
185
|
+
puts e
|
186
|
+
puts "--------------------------------------------"
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
def self.user_projects_filename
|
191
|
+
FileUtils.mkdir_p("#{Environment.dev_root}/data") unless File.exist?("#{Environment.dev_root}/data")
|
192
|
+
"#{Environment.dev_root}/data/PROJECTS.json"
|
193
|
+
end
|
194
|
+
|
195
|
+
def self.current
|
196
|
+
project = nil
|
197
|
+
url = Git.remote_origin
|
198
|
+
url = Svn.url if url.length.zero?
|
199
|
+
if Rake.application.original_dir.include?("/wrk/") &&
|
200
|
+
url.length.positive?
|
201
|
+
project = Project.new(url)
|
202
|
+
fullname = Rake.application.original_dir.gsub("#{Environment.dev_root}/wrk/", "")
|
203
|
+
project[:fullname] = name if name.length.positive? && !name.include?(Environment.dev_root)
|
204
|
+
if defined?(PROJECTS)
|
205
|
+
PROJECTS[name] = project unless PROJECTS.key?(name)
|
206
|
+
project.each { |k, v| PROJECTS[name][k] = v }
|
207
|
+
PROJECTS.save
|
208
|
+
else
|
209
|
+
project[:fullname] = name
|
210
|
+
end
|
211
|
+
end
|
212
|
+
project
|
213
|
+
end
|
214
|
+
|
215
|
+
def pull
|
216
|
+
each { |_k, v| v.pull if v.respond_to?("pull".to_sym) }
|
217
|
+
end
|
218
|
+
|
219
|
+
def rake
|
220
|
+
each { |_k, v| v.rake if v.respond_to?("rake".to_sym) }
|
221
|
+
end
|
222
|
+
|
223
|
+
def import(pattern = "")
|
224
|
+
wrk = @env.wrk_dir
|
225
|
+
if File.exist?(wrk)
|
226
|
+
Dir.chdir(wrk) do
|
227
|
+
puts "scanning #{wrk} for imports..."
|
228
|
+
Dir.glob("**/rakefile.rb").each do |rakefile|
|
229
|
+
rakedir = File.dirname(rakefile)
|
230
|
+
url = Project.get_url rakedir
|
231
|
+
project = Project.new(Project.get_url(rakedir))
|
232
|
+
project[:fullname] = rakedir.gsub(@env.wrk_dir, "") if project.fullname.include?(":")
|
233
|
+
if (pattern.length.zero? || project.fullname.include?(pattern)) && (project.fullname.length.positive? && !key?(project.fullname))
|
234
|
+
puts "importing #{project.fullname}"
|
235
|
+
self[project.fullname] = project
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
save
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
data/lib/base/source.rb
CHANGED
@@ -1,22 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
puts __FILE__ if defined?(DEBUG)
|
2
4
|
|
3
|
-
SOURCE=FileList.new(
|
4
|
-
SOURCE.include(
|
5
|
-
SOURCE.include(
|
6
|
-
SOURCE.include(
|
7
|
-
SOURCE.include(
|
8
|
-
SOURCE.include(
|
9
|
-
SOURCE.include(
|
10
|
-
SOURCE.include(
|
11
|
-
SOURCE.include(
|
12
|
-
SOURCE.include(
|
13
|
-
SOURCE.include(
|
14
|
-
SOURCE.include(
|
15
|
-
SOURCE.include(
|
16
|
-
SOURCE.include(
|
17
|
-
SOURCE.include(
|
18
|
-
SOURCE.exclude(
|
19
|
-
SOURCE.exclude(
|
20
|
-
SOURCE.exclude(
|
21
|
-
SOURCE.exclude(
|
22
|
-
SOURCE.exclude(
|
5
|
+
SOURCE = FileList.new("LICENSE", "README", "README.md", "Gemfile")
|
6
|
+
SOURCE.include("*.{gitignore,yml,gemspec}")
|
7
|
+
SOURCE.include("**/*.{rb}")
|
8
|
+
SOURCE.include("**/*.{cs,xaml,resx,settings}")
|
9
|
+
SOURCE.include("**/*.{c,h}")
|
10
|
+
SOURCE.include("**/*.{cpp,hpp}")
|
11
|
+
SOURCE.include("**/*.{swift}")
|
12
|
+
SOURCE.include("**/*.{xcodeproj,plist,storyboard,json}")
|
13
|
+
SOURCE.include("**/*.{csproj,sln,nuspec,config,snk}")
|
14
|
+
SOURCE.include("**/*.{saproj}")
|
15
|
+
SOURCE.include("**/*.{jpeg,jpg,png,bmp,gif,tif}")
|
16
|
+
SOURCE.include("**/*.{html,htm}")
|
17
|
+
SOURCE.include("**/*.{ico}")
|
18
|
+
SOURCE.include("**/*.{txt}")
|
19
|
+
SOURCE.include("**/*.{wxs,_wxs}")
|
20
|
+
SOURCE.exclude("bin", "obj", "lib")
|
21
|
+
SOURCE.exclude("**/obj/**/*.*")
|
22
|
+
SOURCE.exclude("**/bin/**/*.*")
|
23
|
+
SOURCE.exclude("commit.message")
|
24
|
+
SOURCE.exclude("rakefile.default")
|
data/lib/base/string.rb
CHANGED
data/lib/base/text.rb
CHANGED
@@ -1,30 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
puts __FILE__ if defined?(DEBUG)
|
2
4
|
|
3
5
|
class Text
|
4
|
-
def self.replace_in_glob(glob,search,replace)
|
5
|
-
|
6
|
+
def self.replace_in_glob(glob, search, replace)
|
7
|
+
Dir.glob(glob).each { |f| replace_in_file(f, search, replace) }
|
6
8
|
end
|
7
|
-
|
8
|
-
def self.replace_in_file(filename,search,replace)
|
9
|
+
|
10
|
+
def self.replace_in_file(filename, search, replace)
|
9
11
|
text1 = IO.read(filename)
|
10
|
-
text2 = text1.gsub(search) { |
|
11
|
-
unless text1==text2
|
12
|
-
File.open(filename,"w") { |f| f.puts text2 }
|
12
|
+
text2 = text1.gsub(search) { |_str| str = replace }
|
13
|
+
unless text1 == text2
|
14
|
+
File.open(filename, "w") { |f| f.puts text2 }
|
13
15
|
return true
|
14
16
|
end
|
15
17
|
false
|
16
18
|
end
|
17
19
|
|
18
|
-
|
19
|
-
if
|
20
|
+
def self.copy_if_different(source, destination)
|
21
|
+
if !File.exist?(destination)
|
20
22
|
FileUtils.cp source, destination
|
21
23
|
else
|
22
|
-
source_text=IO.read(source)
|
23
|
-
destination_text=IO.read(destination)
|
24
|
-
if
|
24
|
+
source_text = IO.read(source)
|
25
|
+
destination_text = IO.read(destination)
|
26
|
+
if source_text != destination_text
|
25
27
|
FileUtils.rm destination
|
26
28
|
FileUtils.cp source, destination
|
27
29
|
end
|
28
30
|
end
|
29
|
-
|
30
|
-
end
|
31
|
+
end
|
32
|
+
end
|