raykit 0.0.309 → 0.0.313
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/raykit/command.rb +62 -63
- data/lib/raykit/console.rb +63 -62
- data/lib/raykit/dir.rb +6 -6
- data/lib/raykit/dotnet.rb +1 -1
- data/lib/raykit/environment.rb +19 -19
- data/lib/raykit/git/directory.rb +27 -18
- data/lib/raykit/git/files.rb +4 -5
- data/lib/raykit/git/repositories.rb +7 -7
- data/lib/raykit/git/repository.rb +10 -10
- data/lib/raykit/log.rb +6 -8
- data/lib/raykit/logevent.rb +12 -13
- data/lib/raykit/logging.rb +7 -7
- data/lib/raykit/msbuild.rb +7 -13
- data/lib/raykit/project.rb +49 -43
- data/lib/raykit/rake.rb +6 -6
- data/lib/raykit/runner.rb +10 -10
- data/lib/raykit/secrets.rb +7 -7
- data/lib/raykit/sourceImport.rb +16 -16
- data/lib/raykit/sourceImports.rb +4 -4
- data/lib/raykit/string.rb +3 -3
- data/lib/raykit/tasks.rb +26 -26
- data/lib/raykit/text.rb +1 -1
- data/lib/raykit/timer.rb +2 -2
- data/lib/raykit/version.rb +12 -12
- data/lib/raykit/vstest.rb +8 -8
- data/lib/raykit.rb +7 -7
- metadata +2 -2
data/lib/raykit/project.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'rake/clean'
|
4
|
+
require 'digest'
|
5
5
|
RAKE_DIRECTORY = Rake.application.original_dir
|
6
|
-
|
7
6
|
module Raykit
|
8
7
|
class Project
|
9
8
|
attr_accessor :name, :timer, :verbose, :target
|
@@ -20,8 +19,8 @@ module Raykit
|
|
20
19
|
def initialize
|
21
20
|
@verbose = false
|
22
21
|
@timer = Raykit::Timer.new
|
23
|
-
@remote =
|
24
|
-
@commit_message_filename =
|
22
|
+
@remote = ''
|
23
|
+
@commit_message_filename = 'commit_message.tmp'
|
25
24
|
if Dir.exist?(RAKE_DIRECTORY)
|
26
25
|
@directory = RAKE_DIRECTORY
|
27
26
|
if Dir.exist?("#{RAKE_DIRECTORY}/.git") && Dir.exist?(@directory)
|
@@ -29,7 +28,7 @@ module Raykit
|
|
29
28
|
@remote = @git_directory.remote
|
30
29
|
end
|
31
30
|
else
|
32
|
-
@directory =
|
31
|
+
@directory = ''
|
33
32
|
end
|
34
33
|
|
35
34
|
# @log=Log.new("#{RAKE_DIRECTORY}/tmp/raykit.log")
|
@@ -37,16 +36,16 @@ module Raykit
|
|
37
36
|
if defined?(NAME)
|
38
37
|
@name = NAME
|
39
38
|
else
|
40
|
-
slns = Dir.glob(
|
39
|
+
slns = Dir.glob('*.sln')
|
41
40
|
if slns.length == 1
|
42
|
-
@name = slns[0].gsub(
|
41
|
+
@name = slns[0].gsub('.sln', '')
|
43
42
|
else
|
44
|
-
gemspecs = Dir.glob(
|
43
|
+
gemspecs = Dir.glob('*.gemspec')
|
45
44
|
if gemspecs.length == 1
|
46
|
-
@name = gemspecs[0].gsub(
|
45
|
+
@name = gemspecs[0].gsub('.gemspec', '')
|
47
46
|
else
|
48
|
-
remote_parts = @remote.split(
|
49
|
-
@name = remote_parts[-1].gsub(
|
47
|
+
remote_parts = @remote.split('/')
|
48
|
+
@name = remote_parts[-1].gsub('.git', '') if remote_parts.length.positive?
|
50
49
|
end
|
51
50
|
end
|
52
51
|
end
|
@@ -65,7 +64,7 @@ module Raykit
|
|
65
64
|
def target_md5
|
66
65
|
return Digest::MD5.file(target).to_s.strip if !target.nil? && File.exist?(target)
|
67
66
|
|
68
|
-
|
67
|
+
''
|
69
68
|
end
|
70
69
|
|
71
70
|
def branch
|
@@ -83,7 +82,7 @@ module Raykit
|
|
83
82
|
|
84
83
|
def outstanding_commit?
|
85
84
|
Dir.chdir(@directory) do
|
86
|
-
return true unless `git status`.include?(
|
85
|
+
return true unless `git status`.include?('nothing to commit')
|
87
86
|
end
|
88
87
|
false
|
89
88
|
end
|
@@ -92,9 +91,15 @@ module Raykit
|
|
92
91
|
# puts `git log -n 1`
|
93
92
|
# !latest_tag_commit.eql?(latest_commit)
|
94
93
|
# commit 2e4cb6d6c0721e16cd06afee85b7cdc27354921b (HEAD -> master, tag: 0.0.180, origin/master, origin/HEAD)
|
95
|
-
outstanding_commit? || !`git log -n 1`.include?(
|
94
|
+
outstanding_commit? || !`git log -n 1`.include?('tag:')
|
95
|
+
end
|
96
|
+
|
97
|
+
def detached?
|
98
|
+
@git_directory.detached?
|
96
99
|
end
|
97
100
|
|
101
|
+
|
102
|
+
|
98
103
|
def has_diff?(filename)
|
99
104
|
Dir.chdir(@directory) do
|
100
105
|
text = `git diff #{filename}`.strip
|
@@ -133,12 +138,12 @@ module Raykit
|
|
133
138
|
scan = text.scan(/md5=(\w{32})/)
|
134
139
|
return scan[0][0].to_s.strip if scan.length.positive? && scan[0].length.positive?
|
135
140
|
|
136
|
-
|
141
|
+
''
|
137
142
|
end
|
138
143
|
|
139
144
|
def last_modified_filename
|
140
145
|
Dir.chdir(@directory) do
|
141
|
-
Dir.glob(
|
146
|
+
Dir.glob('**/*.*').select { |f| File.file?(f) }.max_by { |f| File.mtime(f) }
|
142
147
|
end
|
143
148
|
end
|
144
149
|
|
@@ -167,32 +172,33 @@ module Raykit
|
|
167
172
|
def elapsed
|
168
173
|
elapsed = @timer.elapsed
|
169
174
|
if elapsed < 1.0
|
170
|
-
"#{format(
|
175
|
+
"#{format('%.1f', @timer.elapsed)}s"
|
171
176
|
else
|
172
|
-
"#{format(
|
177
|
+
"#{format('%.0f', @timer.elapsed)}s"
|
173
178
|
end
|
174
179
|
end
|
175
180
|
|
176
181
|
def info
|
177
182
|
ljust = 35
|
178
|
-
puts
|
179
|
-
puts
|
180
|
-
puts
|
181
|
-
puts
|
182
|
-
puts
|
183
|
+
puts ''
|
184
|
+
puts 'PROJECT.name'.ljust(ljust) + Rainbow(PROJECT.name).yellow.bright
|
185
|
+
puts 'PROJECT.version'.ljust(ljust) + Rainbow(PROJECT.version).yellow.bright
|
186
|
+
puts 'PROJECT.remote'.ljust(ljust) + Rainbow(PROJECT.remote).yellow.bright
|
187
|
+
puts 'PROJECT.branch'.ljust(ljust) + Rainbow(PROJECT.branch).yellow.bright
|
188
|
+
puts 'PROJECT.detached?'.ljust(ljust) + Rainbow(PROJECT.detached?).yellow.bright
|
183
189
|
# puts "PROJECT.target".ljust(ljust) + Rainbow(PROJECT.target).yellow.bright
|
184
190
|
# puts "PROJECT.target_md5".ljust(ljust) + Rainbow(PROJECT.target_md5).yellow.bright
|
185
|
-
puts
|
186
|
-
puts
|
187
|
-
puts
|
188
|
-
puts
|
189
|
-
puts
|
191
|
+
puts 'PROJECT.latest_tag'.ljust(ljust) + Rainbow(PROJECT.latest_tag).yellow.bright
|
192
|
+
puts 'PROJECT.latest_tag_commit'.ljust(ljust) + Rainbow(PROJECT.latest_tag_commit).yellow.bright
|
193
|
+
puts 'PROJECT.latest_tag_md5'.ljust(ljust) + Rainbow(PROJECT.latest_tag_md5).yellow.bright
|
194
|
+
puts 'PROJECT.latest_commit'.ljust(ljust) + Rainbow(PROJECT.latest_commit).yellow.bright
|
195
|
+
puts 'PROJECT.last_modified_filename'.ljust(ljust) + Rainbow(PROJECT.last_modified_filename).yellow.bright
|
190
196
|
# puts "PROJECT.elapsed".ljust(ljust) + Rainbow(PROJECT.elapsed).yellow.bright
|
191
|
-
puts
|
192
|
-
puts
|
193
|
-
puts
|
194
|
-
puts
|
195
|
-
puts
|
197
|
+
puts 'PROJECT.size'.ljust(ljust) + Rainbow(PROJECT.size).yellow.bright
|
198
|
+
puts 'PROJECT.size_pack'.ljust(ljust) + Rainbow(PROJECT.size_pack).yellow.bright
|
199
|
+
puts 'PROJECT.outstanding_commit?'.ljust(ljust) + Rainbow(PROJECT.outstanding_commit?).yellow.bright
|
200
|
+
puts 'PROJECT.outstanding_tag?'.ljust(ljust) + Rainbow(PROJECT.outstanding_tag?).yellow.bright
|
201
|
+
puts ''
|
196
202
|
self
|
197
203
|
end
|
198
204
|
|
@@ -210,10 +216,10 @@ module Raykit
|
|
210
216
|
def commit(commit_message)
|
211
217
|
warn "[DEPRECATION] 'commit_message_filename' is deprectated. Use a run command for better transparency."
|
212
218
|
Dir.chdir(@directory) do
|
213
|
-
if File.exist?(
|
219
|
+
if File.exist?('.gitignore')
|
214
220
|
status = `git status`
|
215
|
-
if status.include?(
|
216
|
-
run(
|
221
|
+
if status.include?('Changes not staged for commit:')
|
222
|
+
run('git add --all')
|
217
223
|
if GIT_DIRECTORY.outstanding_commit?
|
218
224
|
if File.exist?(@commit_message_filename)
|
219
225
|
run("git commit --file #{@commit_message_filename}")
|
@@ -224,7 +230,7 @@ module Raykit
|
|
224
230
|
end
|
225
231
|
end
|
226
232
|
else
|
227
|
-
puts
|
233
|
+
puts 'warning: .gitignore not found.'
|
228
234
|
end
|
229
235
|
end
|
230
236
|
self
|
@@ -234,7 +240,7 @@ module Raykit
|
|
234
240
|
Dir.chdir(@directory) do
|
235
241
|
status = `git status`
|
236
242
|
if status.include?('use "git push"')
|
237
|
-
run(
|
243
|
+
run('git push')
|
238
244
|
|
239
245
|
# run('git push --tags')
|
240
246
|
end
|
@@ -244,7 +250,7 @@ module Raykit
|
|
244
250
|
|
245
251
|
def pull
|
246
252
|
Dir.chdir(@directory) do
|
247
|
-
run(
|
253
|
+
run('git pull')
|
248
254
|
end
|
249
255
|
self
|
250
256
|
end
|
@@ -279,9 +285,9 @@ module Raykit
|
|
279
285
|
cmd.summary
|
280
286
|
cmd.save
|
281
287
|
elapsed_str = Timer.get_elapsed_str(cmd.elapsed, 0)
|
282
|
-
if
|
283
|
-
|
284
|
-
|
288
|
+
if cmd.exitstatus.zero?
|
289
|
+
# puts elapsed_str + " " + Rainbow(cmd.command).yellow.bright
|
290
|
+
# return elapsed_str + " " + cmd.command
|
285
291
|
else
|
286
292
|
# display error details
|
287
293
|
puts cmd.output
|
data/lib/raykit/rake.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'time'
|
4
4
|
|
5
5
|
module Raykit
|
6
6
|
class Rake
|
7
|
-
def self.run(remote, branch, task =
|
7
|
+
def self.run(remote, branch, task = 'default')
|
8
8
|
repo = Raykit::Git::Repository.new(remote)
|
9
9
|
rel_dir = repo.relative_path
|
10
10
|
commit = repo.latest_commit(branch)
|
11
|
-
log_filename = "#{Environment.get_dev_dir(
|
11
|
+
log_filename = "#{Environment.get_dev_dir('log')}/RayKit.Runner/#{rel_dir}/#{branch}/#{commit}.json"
|
12
12
|
if File.exist?(log_filename)
|
13
13
|
Command.parse(File.read(log_filename))
|
14
14
|
else
|
15
|
-
run_dir = "#{Environment.get_dev_dir(
|
15
|
+
run_dir = "#{Environment.get_dev_dir('tmp')}/#{rel_dir}.#{branch}.#{commit}"
|
16
16
|
unless Dir.exist?(run_dir)
|
17
|
-
parent_dir = File.expand_path(
|
17
|
+
parent_dir = File.expand_path('..', run_dir)
|
18
18
|
FileUtils.mkdir_p(parent_dir) unless Dir.exist?(parent_dir)
|
19
19
|
cmd = Command.new("git clone #{remote} #{run_dir}")
|
20
20
|
end
|
@@ -22,7 +22,7 @@ module Raykit
|
|
22
22
|
cmd = Command.new("rake #{task}")
|
23
23
|
parent_dir = File.dirname(log_filename)
|
24
24
|
FileUtils.mkdir_p(parent_dir) unless Dir.exist?(parent_dir)
|
25
|
-
File.open(log_filename,
|
25
|
+
File.open(log_filename, 'w') do |f|
|
26
26
|
f.write(JSON.generate(cmd.to_hash))
|
27
27
|
end
|
28
28
|
return cmd
|
data/lib/raykit/runner.rb
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'yaml'
|
4
4
|
|
5
5
|
module Raykit
|
6
6
|
class Runner
|
7
7
|
def self.run(git_url)
|
8
8
|
commands = []
|
9
|
-
local_dir = Dir.mktmpdir(
|
9
|
+
local_dir = Dir.mktmpdir('runner')
|
10
10
|
puts "local_dir : #{local_dir}"
|
11
11
|
commands << Raykit::Command.new("git clone #{git_url} #{local_dir}")
|
12
12
|
Dir.chdir(local_dir) do
|
13
|
-
commands << Raykit::Command.new(
|
13
|
+
commands << Raykit::Command.new('git log -n 1')
|
14
14
|
yaml = get_build_yaml(local_dir)
|
15
15
|
build_hash = YAML.safe_load(yaml)
|
16
16
|
build_commands = Raykit::Command.parse_yaml_commands(yaml)
|
17
|
-
if build_hash.key?(
|
18
|
-
image = build_hash[
|
19
|
-
build_commands.insert(0,
|
17
|
+
if build_hash.key?('image')
|
18
|
+
image = build_hash['image']
|
19
|
+
build_commands.insert(0, 'cd home')
|
20
20
|
build_commands.insert(1, "git clone #{git_url} build")
|
21
|
-
build_commands.insert(2,
|
22
|
-
build_commands_string = build_commands.join(
|
21
|
+
build_commands.insert(2, 'cd build')
|
22
|
+
build_commands_string = build_commands.join(';')
|
23
23
|
commands << Raykit::Command.new("docker run #{image} sh -c \"#{build_commands_string}\"")
|
24
24
|
else
|
25
25
|
build_commands.each do |cmd_string|
|
@@ -32,9 +32,9 @@ module Raykit
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def self.get_build_yaml(directory)
|
35
|
-
yaml =
|
35
|
+
yaml = ''
|
36
36
|
Dir.chdir(directory) do
|
37
|
-
yaml = File.open(
|
37
|
+
yaml = File.open('.gitlab-ci.yml').read if File.exist?('.gitlab-ci.yml')
|
38
38
|
end
|
39
39
|
yaml
|
40
40
|
end
|
data/lib/raykit/secrets.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'time'
|
4
4
|
|
5
5
|
module Raykit
|
6
6
|
# Provides functionality to record the time execution times
|
7
7
|
class Secrets < Hash
|
8
8
|
def initialize
|
9
|
-
if ENV.key?(
|
10
|
-
secrets_file = ENV[
|
9
|
+
if ENV.key?('RAYKIT_SECRETS_PATH')
|
10
|
+
secrets_file = ENV['RAYKIT_SECRETS_PATH']
|
11
11
|
if File.exist?(secrets_file)
|
12
12
|
text = IO.read(secrets_file)
|
13
13
|
if text.length > 7
|
@@ -23,15 +23,15 @@ module Raykit
|
|
23
23
|
def hide(text)
|
24
24
|
hidden = text
|
25
25
|
each do |_k, v|
|
26
|
-
hidden = hidden.gsub(v,
|
26
|
+
hidden = hidden.gsub(v, '****') if !v.nil? && v.length.positive?
|
27
27
|
end
|
28
28
|
hidden
|
29
29
|
end
|
30
30
|
|
31
31
|
def save
|
32
|
-
if ENV.key?(
|
33
|
-
secrets_file = ENV[
|
34
|
-
File.open(secrets_file,
|
32
|
+
if ENV.key?('RAYKIT_SECRETS_PATH')
|
33
|
+
secrets_file = ENV['RAYKIT_SECRETS_PATH']
|
34
|
+
File.open(secrets_file, 'w') { |f| f.puts to_json }
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
data/lib/raykit/sourceImport.rb
CHANGED
@@ -3,36 +3,36 @@
|
|
3
3
|
module Raykit
|
4
4
|
class SourceImport < Hash
|
5
5
|
def initialize(url, source, glob, target, commit)
|
6
|
-
self[
|
7
|
-
self[
|
8
|
-
self[
|
9
|
-
self[
|
10
|
-
self[
|
6
|
+
self['remote'] = url
|
7
|
+
self['source'] = source
|
8
|
+
self['glob'] = glob
|
9
|
+
self['target'] = target
|
10
|
+
self['commit'] = commit
|
11
11
|
end
|
12
12
|
|
13
13
|
def remote
|
14
|
-
self[
|
14
|
+
self['remote']
|
15
15
|
end
|
16
16
|
|
17
17
|
def source
|
18
|
-
self[
|
18
|
+
self['source']
|
19
19
|
end
|
20
20
|
|
21
21
|
def target
|
22
|
-
self[
|
22
|
+
self['target']
|
23
23
|
end
|
24
24
|
|
25
25
|
def glob
|
26
|
-
self[
|
26
|
+
self['glob']
|
27
27
|
end
|
28
28
|
|
29
29
|
def update
|
30
|
-
work = self[
|
30
|
+
work = self['remote'].work_dir
|
31
31
|
work_parent = File.dirname(work)
|
32
32
|
FileUtils.mkdir_p(work_parent) unless Dir.exist?(work_parent)
|
33
33
|
if Dir.exist?(work)
|
34
34
|
Dir.chdir(work) do
|
35
|
-
cmd = Command.new(
|
35
|
+
cmd = Command.new('git pull')
|
36
36
|
end
|
37
37
|
else
|
38
38
|
PROJECT.run("git clone #{remote} #{work}")
|
@@ -41,22 +41,22 @@ module Raykit
|
|
41
41
|
Dir.chdir(work) do
|
42
42
|
text = `git log -n 1`
|
43
43
|
scan = text.scan(/commit (\w+)\s/)
|
44
|
-
self[
|
44
|
+
self['commit'] = scan[0][0].to_s
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
48
|
def copy
|
49
49
|
if target.length.zero?
|
50
|
-
puts
|
50
|
+
puts 'target has not been specified'
|
51
51
|
else
|
52
52
|
FileUtils.remove_dir(target) if Dir.exist?(target)
|
53
53
|
count = 0
|
54
54
|
source_names = []
|
55
|
-
work = self[
|
55
|
+
work = self['remote'].work_dir
|
56
56
|
Dir.chdir(work) do
|
57
|
-
cmd = Command.new(
|
57
|
+
cmd = Command.new('rake clean') if File.exist?('rakefile.rb')
|
58
58
|
Dir.chdir(source) do
|
59
|
-
source_names = Dir.glob(self[
|
59
|
+
source_names = Dir.glob(self['glob'])
|
60
60
|
end
|
61
61
|
end
|
62
62
|
source_names.each do |source_name|
|
data/lib/raykit/sourceImports.rb
CHANGED
@@ -4,7 +4,7 @@ module Raykit
|
|
4
4
|
class SourceImports < Array
|
5
5
|
def initialize(urls)
|
6
6
|
urls.each do |url|
|
7
|
-
self << SourceImport.new(url,
|
7
|
+
self << SourceImport.new(url, 'src', '**/*.cs', 'dep', '')
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -24,7 +24,7 @@ module Raykit
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def save(filename)
|
27
|
-
File.open(filename,
|
27
|
+
File.open(filename, 'w') do |f|
|
28
28
|
f.write(JSON.pretty_generate(self))
|
29
29
|
end
|
30
30
|
end
|
@@ -33,8 +33,8 @@ module Raykit
|
|
33
33
|
sourceImports = SourceImports.new([])
|
34
34
|
array = JSON.parse(IO.read(filename))
|
35
35
|
array.each do |hash|
|
36
|
-
sourceImport = SourceImport.new(hash[
|
37
|
-
hash[
|
36
|
+
sourceImport = SourceImport.new(hash['remote'], hash['source'], hash['glob'], hash['target'],
|
37
|
+
hash['commit'])
|
38
38
|
sourceImports << sourceImport
|
39
39
|
end
|
40
40
|
sourceImports
|
data/lib/raykit/string.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative(
|
3
|
+
require_relative('./environment')
|
4
4
|
|
5
5
|
class String
|
6
6
|
def work_dir
|
7
|
-
rel_name = sub(
|
8
|
-
"#{Raykit::Environment.get_dev_dir(
|
7
|
+
rel_name = sub('https://', '').gsub('http://', '').gsub('.git', '')
|
8
|
+
"#{Raykit::Environment.get_dev_dir('work')}/#{rel_name}"
|
9
9
|
end
|
10
10
|
|
11
11
|
def latest_commit
|
data/lib/raykit/tasks.rb
CHANGED
@@ -1,33 +1,33 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
desc
|
3
|
+
desc 'Display project information'
|
4
4
|
task :info do
|
5
5
|
PROJECT.info
|
6
6
|
end
|
7
7
|
|
8
|
-
desc
|
8
|
+
desc 'integrate changes into the git repository'
|
9
9
|
task :integrate do
|
10
|
-
puts Rainbow(
|
10
|
+
puts Rainbow(':integrate').blue.bright
|
11
11
|
|
12
12
|
git_dir = Raykit::Git::Directory.new(Rake.application.original_dir)
|
13
13
|
if git_dir.detached?
|
14
|
-
puts
|
14
|
+
puts 'detached head state, skipping integrate operations'
|
15
15
|
else
|
16
16
|
if PROJECT.outstanding_commit?
|
17
|
-
Rake::Task[
|
17
|
+
Rake::Task['test'].invoke if Rake::Task.task_defined?('test')
|
18
18
|
else
|
19
|
-
puts
|
19
|
+
puts 'no outstanding commits detected'
|
20
20
|
end
|
21
21
|
|
22
|
-
if !File.exist?(
|
23
|
-
puts
|
22
|
+
if !File.exist?('.gitignore')
|
23
|
+
puts 'warning: .gitignore does not exist.'
|
24
24
|
else
|
25
|
-
PROJECT.run(
|
26
|
-
unless `git status`.include?(
|
25
|
+
PROJECT.run('git add --all')
|
26
|
+
unless `git status`.include?('nothing to commit')
|
27
27
|
# if(PROJECT.outstanding_commit?)
|
28
|
-
commit_message =
|
28
|
+
commit_message = 'integrate'
|
29
29
|
PROJECT.run("git commit -m\"#{commit_message}\"") if PROJECT.outstanding_commit?
|
30
|
-
PROJECT.run(
|
30
|
+
PROJECT.run('git pull')
|
31
31
|
# PROJECT.run("git push")
|
32
32
|
# PROJECT.run("git push --tags")
|
33
33
|
end
|
@@ -35,40 +35,40 @@ task :integrate do
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
desc
|
38
|
+
desc 'push changes including tags'
|
39
39
|
task :push do
|
40
40
|
git_dir = Raykit::Git::Directory.new(Rake.application.original_dir)
|
41
41
|
if git_dir.detached?
|
42
|
-
puts
|
42
|
+
puts 'detached head state, skipping push operations'
|
43
43
|
else
|
44
|
-
PROJECT.run(
|
45
|
-
PROJECT.run(
|
44
|
+
PROJECT.run('git push')
|
45
|
+
PROJECT.run('git push --tags')
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
desc
|
49
|
+
desc 'clean files not tracked by git'
|
50
50
|
task :clean do
|
51
|
-
puts Rainbow(
|
52
|
-
PROJECT.run(
|
51
|
+
puts Rainbow(':clean').blue.bright
|
52
|
+
PROJECT.run('git clean -dXf')
|
53
53
|
end
|
54
54
|
|
55
|
-
desc
|
55
|
+
desc 'update_source from sourceImports.json'
|
56
56
|
task :update_source do
|
57
|
-
if File.exist?(
|
58
|
-
puts Rainbow(
|
59
|
-
sourceImports = Raykit::SourceImports.load(
|
57
|
+
if File.exist?('sourceImports.json')
|
58
|
+
puts Rainbow(':update_source').blue.bright
|
59
|
+
sourceImports = Raykit::SourceImports.load('sourceImports.json')
|
60
60
|
json = sourceImports.to_json
|
61
61
|
sourceImports.update
|
62
62
|
|
63
63
|
json2 = sourceImports.to_json
|
64
64
|
if json2 != json || !sourceImports.targets_exist?
|
65
|
-
sourceImports.save(
|
65
|
+
sourceImports.save('sourceImports.json')
|
66
66
|
sourceImports.copy
|
67
67
|
else
|
68
|
-
puts
|
68
|
+
puts ' no update required.'
|
69
69
|
end
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
-
desc
|
73
|
+
desc 'update source files'
|
74
74
|
task update: [:update_source]
|
data/lib/raykit/text.rb
CHANGED
data/lib/raykit/timer.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'time'
|
4
4
|
|
5
5
|
module Raykit
|
6
6
|
# Provides functionality to record the time execution times
|
@@ -25,7 +25,7 @@ module Raykit
|
|
25
25
|
# Converts a time span in seconds to a formatted string
|
26
26
|
def self.get_elapsed_str(elapsed, pad = 0)
|
27
27
|
# "[" + "%.0f" % (elapsed) + "s]".ljust(pad)
|
28
|
-
format(
|
28
|
+
format('%.0f', elapsed) + 's'.ljust(pad)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
data/lib/raykit/version.rb
CHANGED
@@ -27,19 +27,19 @@ module Raykit
|
|
27
27
|
|
28
28
|
if verbose
|
29
29
|
warning = "\u26A0"
|
30
|
-
symbol = Rainbow(warning.encode(
|
30
|
+
symbol = Rainbow(warning.encode('utf-8')).yellow
|
31
31
|
puts "#{symbol} version not detected"
|
32
32
|
end
|
33
|
-
|
33
|
+
''
|
34
34
|
end
|
35
35
|
|
36
36
|
def self.detect_from_file(filename, regex, verbose)
|
37
|
-
version =
|
37
|
+
version = ''
|
38
38
|
if File.exist?(filename)
|
39
39
|
match = IO.read(filename).match(regex)
|
40
40
|
version = match.captures[0] if !match.nil? && match.captures.length.positive?
|
41
41
|
else
|
42
|
-
return
|
42
|
+
return ''
|
43
43
|
end
|
44
44
|
if verbose
|
45
45
|
if version.length.positive?
|
@@ -53,12 +53,12 @@ module Raykit
|
|
53
53
|
|
54
54
|
def self.set_version_in_file(filename, version)
|
55
55
|
text = IO.read(filename)
|
56
|
-
new_text = text.gsub(/version\s?=\s?['|"]([.\d]+)['|"]/, "version='#{version}'") if filename.include?(
|
57
|
-
new_text = text.gsub(/<Version>([-\w\d.]+)</, "<Version>#{version}<") if filename.include?(
|
56
|
+
new_text = text.gsub(/version\s?=\s?['|"]([.\d]+)['|"]/, "version='#{version}'") if filename.include?('.gemspec')
|
57
|
+
new_text = text.gsub(/<Version>([-\w\d.]+)</, "<Version>#{version}<") if filename.include?('.csproj')
|
58
58
|
# new_text=text.gsub(/<Version>([-\w\d.]+)</,"<Version>#{version}<")
|
59
59
|
# new_text=new_text.gsub(/version[\s]+=\s?['|"]([.\d]+)['|"]/,"version='#{version}'")
|
60
60
|
# new_text=new_text.gsub(/Version="([.\d]+)"/,"Version=\"#{version}\"")
|
61
|
-
File.open(filename,
|
61
|
+
File.open(filename, 'w') { |f| f.write(new_text) } if new_text != text
|
62
62
|
end
|
63
63
|
|
64
64
|
def self.sync_file_versions(source_filename, destination_filename)
|
@@ -69,19 +69,19 @@ module Raykit
|
|
69
69
|
# increment to last digit of a version string
|
70
70
|
def self.bump(version)
|
71
71
|
# major.minor[.build[.revision]] (example: 1.2.12.102)
|
72
|
-
version_ints = version.split(
|
72
|
+
version_ints = version.split('.').map(&:to_i)
|
73
73
|
version_ints[-1] = version_ints.last + 1
|
74
|
-
version_ints.map(&:to_s).join(
|
74
|
+
version_ints.map(&:to_s).join('.')
|
75
75
|
end
|
76
76
|
|
77
77
|
def self.bump_file(filename)
|
78
78
|
warn "Raykit::Version.bump_file filename '#{filename}' does not exist." unless File.exist?(filename)
|
79
79
|
|
80
|
-
old_version =
|
81
|
-
if filename.include?(
|
80
|
+
old_version = ''
|
81
|
+
if filename.include?('.gemspec')
|
82
82
|
old_version = detect_from_file(filename, /version\s?=\s?['|"]([.\d]+)['|"]/, false)
|
83
83
|
end
|
84
|
-
old_version = detect_from_file(filename, /<Version>([-\w\d.]+)</, false) if filename.include?(
|
84
|
+
old_version = detect_from_file(filename, /<Version>([-\w\d.]+)</, false) if filename.include?('.csproj')
|
85
85
|
|
86
86
|
if old_version.length.positive?
|
87
87
|
new_version = bump(old_version)
|