raykit 0.0.518 → 0.0.520

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +21 -21
  3. data/README.md +25 -25
  4. data/bin/raykit +6 -6
  5. data/lib/raykit/auto_setup.rb +69 -69
  6. data/lib/raykit/command.rb +374 -374
  7. data/lib/raykit/conan/buildinfo.rb +69 -69
  8. data/lib/raykit/conanpackage.rb +49 -49
  9. data/lib/raykit/configuration.rb +53 -53
  10. data/lib/raykit/console.rb +310 -310
  11. data/lib/raykit/default_content.rb +227 -227
  12. data/lib/raykit/dir.rb +73 -73
  13. data/lib/raykit/dotnet.rb +174 -174
  14. data/lib/raykit/environment.rb +115 -114
  15. data/lib/raykit/filesystem.rb +34 -34
  16. data/lib/raykit/git/commit.rb +16 -16
  17. data/lib/raykit/git/directory.rb +216 -216
  18. data/lib/raykit/git/files.rb +46 -46
  19. data/lib/raykit/git/repositories.rb +89 -89
  20. data/lib/raykit/git/repository.rb +362 -362
  21. data/lib/raykit/installer.rb +17 -17
  22. data/lib/raykit/log.rb +80 -80
  23. data/lib/raykit/logevent.rb +29 -29
  24. data/lib/raykit/logger.rb +100 -100
  25. data/lib/raykit/logging.rb +57 -57
  26. data/lib/raykit/markdown.rb +21 -21
  27. data/lib/raykit/msbuild.rb +54 -54
  28. data/lib/raykit/nugetpackage.rb +54 -54
  29. data/lib/raykit/nunit.rb +13 -13
  30. data/lib/raykit/project.rb +343 -343
  31. data/lib/raykit/rake.rb +39 -39
  32. data/lib/raykit/runner.rb +42 -42
  33. data/lib/raykit/secrets.rb +38 -38
  34. data/lib/raykit/sourceImport.rb +76 -76
  35. data/lib/raykit/sourceImports.rb +43 -43
  36. data/lib/raykit/string.rb +18 -18
  37. data/lib/raykit/symbols.rb +115 -115
  38. data/lib/raykit/tasks.rb +91 -99
  39. data/lib/raykit/text.rb +32 -32
  40. data/lib/raykit/timer.rb +31 -31
  41. data/lib/raykit/version.rb +95 -95
  42. data/lib/raykit/vstest.rb +24 -24
  43. data/lib/raykit/wix.rb +61 -61
  44. data/lib/raykit/wt.rb +28 -28
  45. data/lib/raykit/zip.rb +73 -73
  46. data/lib/raykit.rb +128 -127
  47. metadata +3 -3
@@ -1,16 +1,16 @@
1
- # frozen_string_literal: true
2
-
3
- module Raykit
4
- module Git
5
- # Functionality to manage a git commit
6
- class Commit
7
- attr_accessor :url, :branch, :commit_id
8
-
9
- def initialize(url, branch, commit_id)
10
- @url = url
11
- @branch = branch
12
- @commit_id = commit_id
13
- end
14
- end
15
- end
16
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Raykit
4
+ module Git
5
+ # Functionality to manage a git commit
6
+ class Commit
7
+ attr_accessor :url, :branch, :commit_id
8
+
9
+ def initialize(url, branch, commit_id)
10
+ @url = url
11
+ @branch = branch
12
+ @commit_id = commit_id
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,216 +1,216 @@
1
- # frozen_string_literal: true
2
-
3
- module Raykit
4
- module Git
5
- # Functionality to manage a local clone of a git repository
6
- class Directory
7
- # The directory name of the local repository clone
8
- attr_accessor :directory
9
-
10
- @repository
11
-
12
- def initialize(directory)
13
- @directory = directory
14
- end
15
-
16
- def outstanding_commit?
17
- Dir.chdir(directory) do
18
- return false if !File.exist?(".git")
19
- if user_can_commit
20
- return !`git status`.include?("nothing to commit,")
21
- else
22
- return false
23
- end
24
- end
25
- end
26
-
27
- def detached?
28
- Dir.chdir(directory) do
29
- status = `git status`.strip
30
- if status.include?("detached")
31
- true
32
- else
33
- false
34
- end
35
- end
36
- end
37
-
38
- def pull
39
- Dir.chdir(directory) do
40
- diff = `git diff`.strip
41
- status = `git status`.strip
42
- PROJECT.run("git pull", false) if diff.length.zero? && status.include?("nothing to commit")
43
- end
44
- end
45
-
46
- def rake(task)
47
- unless Dir.exist?(@directory)
48
- puts "directory not found."
49
- return 1
50
- end
51
- debug = false
52
- sub_dir = "work"
53
- sub_dir = "make" if @directory.include?("/make/")
54
- rake_log = repository.get_dev_dir("log") + "/#{sub_dir}.rake.#{task}.json"
55
-
56
- puts "log filename #{rake_log}" if debug
57
- if File.exist?(rake_log) && (File.mtime(rake_log) > last_modified_time)
58
- puts "using logged data" if debug
59
- cmd = Raykit::Command.parse(File.read(rake_log))
60
- cmd.summary
61
- return
62
- end
63
-
64
- Dir.chdir(@directory) do
65
- if File.exist?("rakefile.rb")
66
- cmd = Raykit::Command.new("rake #{task}")
67
- cmd.summary
68
- FileUtils.mkdir_p(File.dirname(rake_log))
69
- File.open(rake_log, "w") { |f| f.write(JSON.generate(cmd.to_hash)) }
70
- else
71
- puts "rakefile.rb not found"
72
- end
73
- end
74
- end
75
-
76
- def last_modified_time
77
- Dir.chdir(@directory) do
78
- File.mtime(Dir.glob("**/*.*").select { |f| File.file?(f) }.max_by { |f| File.mtime(f) })
79
- end
80
- end
81
-
82
- # git ls-tree -r master --name-only
83
- def src_files
84
- files = Array.new
85
- Dir.chdir(@directory) do
86
- `git ls-tree -r #{branch} --name-only`.each_line { |line|
87
- file = line.strip
88
- files << file if file.length > 0
89
- }
90
- end
91
- files
92
- end
93
-
94
- def last_modified_src_time
95
- Dir.chdir(@directory) do
96
- File.mtime(src_files.select { |f| File.file?(f) }.max_by { |f| File.mtime(f) })
97
- end
98
- end
99
-
100
- # The latest tag for a branch of the repository
101
- def latest_tag(_branch)
102
- Dir.chdir(directory) do
103
- return `git describe --abbrev=0`.strip
104
- end
105
- ""
106
- end
107
-
108
- def get_tag_commit_id(name)
109
- cmd = Raykit::Command.new("git rev-parse \"#{name}\"").run
110
- if !cmd.output.include?("fatal") && !cmd.error.include?("fatal")
111
- cmd.output.strip
112
- else
113
- ""
114
- end
115
- end
116
-
117
- def has_tag(name)
118
- cmd = Raykit::Command.new("git rev-parse \"#{name}\"").run
119
- if !cmd.output.include?("fatal") && !cmd.error.include?("fatal")
120
- true
121
- else
122
- false
123
- end
124
- end
125
-
126
- def get_sha(filename)
127
- if File.exist?(filename)
128
- Digest::SHA256.file(filename).hexdigest.to_s
129
- else
130
- "#{filename} not found"
131
- end
132
- # ''
133
- end
134
-
135
- def user_name
136
- `git config --get user.name`.strip
137
- end
138
-
139
- def user_email
140
- `git config --get user.email`.strip
141
- end
142
-
143
- def user_can_commit
144
- return false if user_name.length.zero?
145
- return false if user_email.length.zero?
146
-
147
- true
148
- end
149
-
150
- def branch
151
- Dir.chdir(directory) do
152
- scan = `git branch`.scan(/\*\s([\w.-]+)/)
153
- return scan[0][0].to_s if !scan.nil? && scan.length.positive? && scan[0].length.positive?
154
- end
155
- "master"
156
- end
157
-
158
- def repository
159
- @repository = Raykit::Git::Repository.new(remote) if @repository.nil?
160
- @repository
161
- end
162
-
163
- def remote
164
- if Dir.exist?(directory)
165
- Dir.chdir(directory) do
166
- return Command.new("git config --get remote.origin.url").run.output.strip if Dir.exist?(".git")
167
- end
168
- end
169
- ""
170
- end
171
-
172
- def tag_version(version)
173
- if has_tag "v#{version}"
174
- puts " git tag v#{version} already exists"
175
- else
176
- if outstanding_commit?
177
- raise "outstanding commit, will not tag"
178
- else
179
- puts " git tag v#{version} does not exist"
180
- run("git tag -a v#{version} -m\"version #{version}\"")
181
- end
182
- end
183
- end
184
-
185
- def get_unique_ruby_constants
186
- # Define the regular expression pattern
187
- pattern = /\b([A-Z][A-Z0-9_]*)\b\s*=/
188
-
189
- constants = []
190
-
191
- # Loop through each .rb file in the specified directory
192
- Dir.glob("#{directory}/**/*.rb").each do |file|
193
- # Read the contents of the file
194
- content = File.read(file)
195
-
196
- # Scan the content for constants and add the matches to the array.
197
- content.scan(pattern) do |match|
198
- # Add matched constant name to the constants array.
199
- constants << match[0]
200
- end
201
- # Scan the content for constants and add the matches to the array
202
- #constants.concat(content.scan(pattern))
203
- end
204
-
205
- # Return unique constants
206
- constants.uniq
207
- end
208
-
209
- #def setup
210
- # DEFAULT_SUBDIRECTORIES.each do |subdirectory|
211
- # FileUtils.mkdir_p(subdirectory)
212
- # end
213
- #end
214
- end # class Directory
215
- end # module Git
216
- end # module Raykit
1
+ # frozen_string_literal: true
2
+
3
+ module Raykit
4
+ module Git
5
+ # Functionality to manage a local clone of a git repository
6
+ class Directory
7
+ # The directory name of the local repository clone
8
+ attr_accessor :directory
9
+
10
+ @repository
11
+
12
+ def initialize(directory)
13
+ @directory = directory
14
+ end
15
+
16
+ def outstanding_commit?
17
+ Dir.chdir(directory) do
18
+ return false if !File.exist?(".git")
19
+ if user_can_commit
20
+ return !`git status`.include?("nothing to commit,")
21
+ else
22
+ return false
23
+ end
24
+ end
25
+ end
26
+
27
+ def detached?
28
+ Dir.chdir(directory) do
29
+ status = `git status`.strip
30
+ if status.include?("detached")
31
+ true
32
+ else
33
+ false
34
+ end
35
+ end
36
+ end
37
+
38
+ def pull
39
+ Dir.chdir(directory) do
40
+ diff = `git diff`.strip
41
+ status = `git status`.strip
42
+ PROJECT.run("git pull", false) if diff.length.zero? && status.include?("nothing to commit")
43
+ end
44
+ end
45
+
46
+ def rake(task)
47
+ unless Dir.exist?(@directory)
48
+ puts "directory not found."
49
+ return 1
50
+ end
51
+ debug = false
52
+ sub_dir = "work"
53
+ sub_dir = "make" if @directory.include?("/make/")
54
+ rake_log = repository.get_dev_dir("log") + "/#{sub_dir}.rake.#{task}.json"
55
+
56
+ puts "log filename #{rake_log}" if debug
57
+ if File.exist?(rake_log) && (File.mtime(rake_log) > last_modified_time)
58
+ puts "using logged data" if debug
59
+ cmd = Raykit::Command.parse(File.read(rake_log))
60
+ cmd.summary
61
+ return
62
+ end
63
+
64
+ Dir.chdir(@directory) do
65
+ if File.exist?("rakefile.rb")
66
+ cmd = Raykit::Command.new("rake #{task}")
67
+ cmd.summary
68
+ FileUtils.mkdir_p(File.dirname(rake_log))
69
+ File.open(rake_log, "w") { |f| f.write(JSON.generate(cmd.to_hash)) }
70
+ else
71
+ puts "rakefile.rb not found"
72
+ end
73
+ end
74
+ end
75
+
76
+ def last_modified_time
77
+ Dir.chdir(@directory) do
78
+ File.mtime(Dir.glob("**/*.*").select { |f| File.file?(f) }.max_by { |f| File.mtime(f) })
79
+ end
80
+ end
81
+
82
+ # git ls-tree -r master --name-only
83
+ def src_files
84
+ files = Array.new
85
+ Dir.chdir(@directory) do
86
+ `git ls-tree -r #{branch} --name-only`.each_line { |line|
87
+ file = line.strip
88
+ files << file if file.length > 0
89
+ }
90
+ end
91
+ files
92
+ end
93
+
94
+ def last_modified_src_time
95
+ Dir.chdir(@directory) do
96
+ File.mtime(src_files.select { |f| File.file?(f) }.max_by { |f| File.mtime(f) })
97
+ end
98
+ end
99
+
100
+ # The latest tag for a branch of the repository
101
+ def latest_tag(_branch)
102
+ Dir.chdir(directory) do
103
+ return `git describe --abbrev=0`.strip
104
+ end
105
+ ""
106
+ end
107
+
108
+ def get_tag_commit_id(name)
109
+ cmd = Raykit::Command.new("git rev-parse \"#{name}\"").run
110
+ if !cmd.output.include?("fatal") && !cmd.error.include?("fatal")
111
+ cmd.output.strip
112
+ else
113
+ ""
114
+ end
115
+ end
116
+
117
+ def has_tag(name)
118
+ cmd = Raykit::Command.new("git rev-parse \"#{name}\"").run
119
+ if !cmd.output.include?("fatal") && !cmd.error.include?("fatal")
120
+ true
121
+ else
122
+ false
123
+ end
124
+ end
125
+
126
+ def get_sha(filename)
127
+ if File.exist?(filename)
128
+ Digest::SHA256.file(filename).hexdigest.to_s
129
+ else
130
+ "#{filename} not found"
131
+ end
132
+ # ''
133
+ end
134
+
135
+ def user_name
136
+ `git config --get user.name`.strip
137
+ end
138
+
139
+ def user_email
140
+ `git config --get user.email`.strip
141
+ end
142
+
143
+ def user_can_commit
144
+ return false if user_name.length.zero?
145
+ return false if user_email.length.zero?
146
+
147
+ true
148
+ end
149
+
150
+ def branch
151
+ Dir.chdir(directory) do
152
+ scan = `git branch`.scan(/\*\s([\w.-]+)/)
153
+ return scan[0][0].to_s if !scan.nil? && scan.length.positive? && scan[0].length.positive?
154
+ end
155
+ "master"
156
+ end
157
+
158
+ def repository
159
+ @repository = Raykit::Git::Repository.new(remote) if @repository.nil?
160
+ @repository
161
+ end
162
+
163
+ def remote
164
+ if Dir.exist?(directory)
165
+ Dir.chdir(directory) do
166
+ return Command.new("git config --get remote.origin.url").run.output.strip if Dir.exist?(".git")
167
+ end
168
+ end
169
+ ""
170
+ end
171
+
172
+ def tag_version(version)
173
+ if has_tag "v#{version}"
174
+ puts " git tag v#{version} already exists"
175
+ else
176
+ if outstanding_commit?
177
+ raise "outstanding commit, will not tag"
178
+ else
179
+ puts " git tag v#{version} does not exist"
180
+ run("git tag -a v#{version} -m\"version #{version}\"")
181
+ end
182
+ end
183
+ end
184
+
185
+ def get_unique_ruby_constants
186
+ # Define the regular expression pattern
187
+ pattern = /\b([A-Z][A-Z0-9_]*)\b\s*=/
188
+
189
+ constants = []
190
+
191
+ # Loop through each .rb file in the specified directory
192
+ Dir.glob("#{directory}/**/*.rb").each do |file|
193
+ # Read the contents of the file
194
+ content = File.read(file)
195
+
196
+ # Scan the content for constants and add the matches to the array.
197
+ content.scan(pattern) do |match|
198
+ # Add matched constant name to the constants array.
199
+ constants << match[0]
200
+ end
201
+ # Scan the content for constants and add the matches to the array
202
+ #constants.concat(content.scan(pattern))
203
+ end
204
+
205
+ # Return unique constants
206
+ constants.uniq
207
+ end
208
+
209
+ #def setup
210
+ # DEFAULT_SUBDIRECTORIES.each do |subdirectory|
211
+ # FileUtils.mkdir_p(subdirectory)
212
+ # end
213
+ #end
214
+ end # class Directory
215
+ end # module Git
216
+ end # module Raykit
@@ -1,46 +1,46 @@
1
- # frozen_string_literal: true
2
-
3
- module Raykit
4
- module Git
5
- # Functionality to manage a local clone of a git repository
6
- class Files
7
- @url
8
- @commit_id
9
-
10
- def initialize(url, commit_id)
11
- @url = url
12
- @commit_id = commit_id
13
- end
14
-
15
- def clean
16
- FileUtils.rm_rf(commit_path) if Dir.exist?(commit_path)
17
- end
18
-
19
- def get(name)
20
- puts "commit_path(): #{commit_path}"
21
- unless Dir.exist?(commit_path)
22
- puts "cloning commit path..."
23
- clone = Raykit::Command.new("git clone #{@url} #{commit_path}")
24
- puts clone.output
25
- puts clone.error
26
- Dir.chdir(commit_path) do
27
- checkout = Raykit::Command.new("git checkout #{@commit_id}")
28
- end
29
- end
30
-
31
- return filename(name) if File.exist?(filename(name))
32
-
33
- ""
34
- end
35
-
36
- def commit_path
37
- Dir.tmpdir + File::SEPARATOR + "Raykit.Git.Files" + File::SEPARATOR + @url.gsub("://",
38
- ".") + File::SEPARATOR + @commit_id
39
- end
40
-
41
- def filename(name)
42
- commit_path + File::SEPARATOR + name
43
- end
44
- end
45
- end
46
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Raykit
4
+ module Git
5
+ # Functionality to manage a local clone of a git repository
6
+ class Files
7
+ @url
8
+ @commit_id
9
+
10
+ def initialize(url, commit_id)
11
+ @url = url
12
+ @commit_id = commit_id
13
+ end
14
+
15
+ def clean
16
+ FileUtils.rm_rf(commit_path) if Dir.exist?(commit_path)
17
+ end
18
+
19
+ def get(name)
20
+ puts "commit_path(): #{commit_path}"
21
+ unless Dir.exist?(commit_path)
22
+ puts "cloning commit path..."
23
+ clone = Raykit::Command.new("git clone #{@url} #{commit_path}")
24
+ puts clone.output
25
+ puts clone.error
26
+ Dir.chdir(commit_path) do
27
+ checkout = Raykit::Command.new("git checkout #{@commit_id}")
28
+ end
29
+ end
30
+
31
+ return filename(name) if File.exist?(filename(name))
32
+
33
+ ""
34
+ end
35
+
36
+ def commit_path
37
+ Dir.tmpdir + File::SEPARATOR + "Raykit.Git.Files" + File::SEPARATOR + @url.gsub("://",
38
+ ".") + File::SEPARATOR + @commit_id
39
+ end
40
+
41
+ def filename(name)
42
+ commit_path + File::SEPARATOR + name
43
+ end
44
+ end
45
+ end
46
+ end