makit 0.0.94 → 0.0.96

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/lib/makit/apache.rb +32 -32
  3. data/lib/makit/cli/clean.rb +14 -14
  4. data/lib/makit/cli/clone.rb +59 -59
  5. data/lib/makit/cli/init.rb +38 -38
  6. data/lib/makit/cli/main.rb +33 -33
  7. data/lib/makit/cli/make.rb +54 -54
  8. data/lib/makit/cli/new.rb +37 -37
  9. data/lib/makit/cli/nuget_cache.rb +38 -38
  10. data/lib/makit/cli/pull.rb +31 -31
  11. data/lib/makit/cli/setup.rb +71 -71
  12. data/lib/makit/cli/work.rb +21 -21
  13. data/lib/makit/command_runner.rb +404 -404
  14. data/lib/makit/commands.rb +21 -21
  15. data/lib/makit/content/default_gitignore.rb +5 -5
  16. data/lib/makit/content/default_gitignore.txt +222 -222
  17. data/lib/makit/content/default_rakefile.rb +11 -11
  18. data/lib/makit/content/gem_rakefile.rb +14 -14
  19. data/lib/makit/data.rb +50 -50
  20. data/lib/makit/directories.rb +145 -145
  21. data/lib/makit/directory.rb +264 -264
  22. data/lib/makit/docs/files.rb +94 -94
  23. data/lib/makit/docs/rake.rb +106 -106
  24. data/lib/makit/dotnet.rb +219 -219
  25. data/lib/makit/email.rb +61 -61
  26. data/lib/makit/environment.rb +139 -139
  27. data/lib/makit/fileinfo.rb +26 -26
  28. data/lib/makit/files.rb +47 -47
  29. data/lib/makit/git.rb +145 -145
  30. data/lib/makit/gitlab_runner.rb +60 -60
  31. data/lib/makit/humanize.rb +129 -129
  32. data/lib/makit/indexer.rb +56 -56
  33. data/lib/makit/logging.rb +106 -106
  34. data/lib/makit/markdown.rb +75 -75
  35. data/lib/makit/mp/basic_object_mp.rb +16 -16
  36. data/lib/makit/mp/command_mp.rb +13 -13
  37. data/lib/makit/mp/command_request.mp.rb +16 -16
  38. data/lib/makit/mp/project_mp.rb +210 -210
  39. data/lib/makit/mp/string_mp.rb +176 -169
  40. data/lib/makit/nuget.rb +72 -72
  41. data/lib/makit/port.rb +33 -33
  42. data/lib/makit/process.rb +65 -65
  43. data/lib/makit/protoc.rb +104 -104
  44. data/lib/makit/rake.rb +25 -25
  45. data/lib/makit/secrets.rb +51 -51
  46. data/lib/makit/serializer.rb +115 -115
  47. data/lib/makit/show.rb +110 -110
  48. data/lib/makit/storage.rb +131 -131
  49. data/lib/makit/symbols.rb +149 -149
  50. data/lib/makit/task_info.rb +86 -86
  51. data/lib/makit/tasks.rb +150 -150
  52. data/lib/makit/tree.rb +37 -37
  53. data/lib/makit/v1/makit.v1_services_pb.rb +25 -25
  54. data/lib/makit/version.rb +64 -64
  55. data/lib/makit/wix.rb +95 -95
  56. data/lib/makit/yaml.rb +17 -17
  57. data/lib/makit/zip.rb +17 -17
  58. data/lib/makit.rb +267 -267
  59. metadata +9 -28
  60. data/lib/generated/makit/v1/makit.v1_pb.rb +0 -35
  61. data/lib/generated/makit/v1/web/link_pb.rb +0 -20
data/lib/makit.rb CHANGED
@@ -1,267 +1,267 @@
1
- # frozen_string_literal: true
2
-
3
- require "rake/clean"
4
- require "logger"
5
- require "json"
6
- require "yaml"
7
- require "google/protobuf"
8
-
9
- #%w[generated/makit].each do |dir|
10
- # Dir[File.join(__dir__, dir, "*.rb")].each do |file|
11
- # require_relative file
12
- # end
13
- #end
14
- if (File.exist?("protos/makit/makit.v1.proto.rb"))
15
- require_relative "generated/makit/makit.v1_pb"
16
- else
17
- require_relative "makit/v1/makit.v1_pb"
18
- end
19
-
20
- #%w[makit makit/v1 makit/cli makit/content makit/mp].each do |dir|
21
- %w[makit makit/cli makit/content makit/mp makit/docs].each do |dir|
22
- Dir[File.join(__dir__, dir, "*.rb")].each do |file|
23
- require_relative file
24
- end
25
- end
26
-
27
- module Makit
28
- class Error < StandardError; end
29
-
30
- # Constants
31
- if File.exist? ".makit.project.json"
32
- PROJECT = Makit::Serializer.open(".makit.project.json", Makit::V1::Project)
33
- else
34
- if File.exist? ".makit.project.yml"
35
- PROJECT = Makit::Serializer.open(".makit.project.yml", Makit::V1::Project)
36
- else
37
- PROJECT = Makit::V1::Project.new
38
- PROJECT.set_default_values
39
- end
40
- end
41
-
42
- STARTTIME = Time.now
43
- SHOW = Makit::Show.new
44
- IS_GIT_REPO = Dir.exist? ".git"
45
- DETACHED = `git status`.include?("detached")
46
- IS_READ_ONLY = !IS_GIT_REPO || DETACHED
47
- RUNTIME_IDENTIFIER = Makit::Environment::get_runtime_identifier
48
- DEVICE = Socket.gethostname
49
- LOGGER = Makit::Logging::MultiLogger.create_logger
50
-
51
- # Git Commit and Branch/Tag constants
52
- ENV["COMMIT_SHA"] = Makit::Git::commitsha
53
- ENV["COMMIT_BRANCH"] = Makit::Git::branch
54
-
55
- RUNNER = CommandRunner.new
56
- GIT_FILE_INFOS = Makit::Git::get_file_infos
57
- #RUNNER.log_to_artifacts = true
58
- # Variables
59
- log_level = Logger::INFO
60
- package_type = Makit::V1::PackageType::GEM
61
- commands = Makit::Commands.new
62
-
63
- # methods
64
- #
65
- # initialize a git repository
66
- def self.init(directory)
67
- if !Dir.exist?(directory)
68
- FileUtils.mkdir_p(directory)
69
- end
70
- raise Makit::Error.new("directory does not exist: #{directory}") if !Dir.exist?(directory)
71
- Dir.chdir(directory) do
72
- File.write(".gitignore", Makit::Content::GITIGNORE) unless File.exist?(".gitignore")
73
- init = Makit::RUNNER.execute "git init"
74
- if init.exit_code != 0
75
- raise Makit::Error.new("failed to initialize local repository: #{directory}\n#{Makit::Humanize.get_command_summary(init)}")
76
- end
77
- init
78
- end
79
- end
80
-
81
- # clone a git repository to a local directory in Directories::CLONE
82
- # returns the Makit::V1::Command for 'git clone ...'
83
- def self.clone(git_repository)
84
- commands = []
85
- # make sure a local clone of the repository exists
86
- clone_dir = Directories::get_clone_directory(git_repository)
87
- if (!Dir.exist?(clone_dir))
88
- commands << Makit::RUNNER.execute("git clone #{git_repository} #{clone_dir}")
89
- end
90
- commands
91
- end
92
-
93
- # pull the latest changes from the remote repository to a local clone in Directories::CLONE
94
- def self.pull(git_repository)
95
- clone_dir = Directories::get_clone_directory(git_repository)
96
- raise Makit::Error.new("clone directory does not exist: #{clone_dir}") if !Dir.exist?(clone_dir)
97
- Dir.chdir(clone_dir) do
98
- request = Makit::V1::CommandRequest.new(
99
- name: "git",
100
- arguments: ["pull"],
101
- directory: clone_dir,
102
- )
103
- pull_command = Makit::RUNNER.execute(request)
104
- raise Makit::Error.new(Makit::Humanize::get_command_details(pull_command)) if pull_command.exit_code != 0
105
- return pull_command
106
- end
107
- end
108
-
109
- def self.clone_or_pull(git_repository)
110
- commands = []
111
- clone_dir = Directories::get_clone_directory(git_repository)
112
- if Dir.exist?(clone_dir)
113
- commands << pull(git_repository)
114
- else
115
- commands << clone(git_repository)
116
- end
117
- commands
118
- end
119
-
120
- # log information about a specific repository
121
- # return an array of GitLogEntry objects
122
- def self.log(git_repository, limit, skip)
123
- entries = []
124
- clone_dir = Directories::get_clone_directory(git_repository)
125
- raise Makit::Error.new("clone directory does not exist: #{clone_dir}") if !Dir.exist?(clone_dir)
126
- Dir.chdir(clone_dir) do
127
- log_command = Makit::RUNNER.execute("git log -n #{limit} --skip #{skip} --date=iso")
128
- if log_command.exit_code != 0
129
- lines = log_command.stderr.split("\n")
130
- # iterate over the lines, generating a GitLogEntry for each commit
131
- lines.each do |line|
132
- if line.start_with?("commit")
133
- commit = line.split(" ")[1]
134
- entries << GitLogEntry.new(commit)
135
- end
136
- if line.start_with?("Author:")
137
- entries.last.author = line.split(" ")[1..-1].join(" ")
138
- end
139
- if line.start_with?("Date:")
140
- entries.last.date = line.split(" ")[1..-1].join(" ")
141
- end
142
- if line.start_with?(" ")
143
- entries.last.message += line[4..-1]
144
- end
145
- end
146
- end
147
- end
148
- entries
149
- end
150
-
151
- # work on a local clone of a git repository
152
- # if the repository does not exist, clone it
153
- # if the repository exists, pull the latest changes
154
- # if a build command can be found, execute it and return the result Makit::V1::WorkResult
155
- def self.work(repository)
156
- commands = []
157
- work_dir = Makit::Directories::get_work_directory(repository)
158
- commands << clone_or_pull(repository)
159
- clone_dir = Makit::Directories::get_clone_directory(repository)
160
- if !Dir.exist?(work_dir)
161
- # make the parent directory for work_dir if it does not exist
162
- FileUtils.mkdir_p(File.dirname(work_dir)) unless Dir.exist?(File.dirname(work_dir))
163
- Makit::RUNNER::execute "git clone #{clone_dir} #{work_dir}"
164
- end
165
- Dir.chdir(work_dir) do
166
- # if there is no .gitignore file, create one
167
- File.write(".gitignore", Makit::Content::GITIGNORE) unless File.exist?(".gitignore")
168
- end
169
- nil?
170
- end
171
-
172
- def self.enable_monkey_patch
173
- %w[makit/mp].each do |dir|
174
- Dir[File.join(__dir__, dir, "*.rb")].each do |file|
175
- require_relative file
176
- end
177
- end
178
- end
179
- # Given a git repository URL and a commit id, create a new MakeResult object.
180
- def self.make(url, commit, force = false)
181
- log_filename = File.join(Directories::get_log_directory(url), commit, +"#{RUNTIME_IDENTIFIER}.#{DEVICE}.json")
182
- if File.exist?(log_filename) && !force && commit != "latest"
183
- begin
184
- # deserialize the log file to a Makite::V1::MakeResult object
185
- make_result = Makit::V1::MakeResult.decode_json(File.read(log_filename))
186
- return make_result
187
- rescue => e
188
- # if deserialization fails, delete the log file and continue
189
- FileUtils.rm(log_filename)
190
- end
191
- else
192
- commands = []
193
- begin
194
- clone_or_pull(url).each do |command|
195
- commands << command
196
- end
197
- # make sure a local clone of the repository exists
198
- clone_dir = Directories::get_clone_directory(url)
199
- raise Makit::Error.new("clone directory does not exist: #{clone_dir}") if !Dir.exist?(clone_dir)
200
-
201
- if (commit == "latest")
202
- Dir.chdir(clone_dir) do
203
- git_log = Makit::RUNNER.execute("git log -n 1 --date=iso")
204
-
205
- commands << git_log
206
- # assert that the commit is valid
207
- commit = git_log.output.match(/^commit ([0-9a-f]{40})$/i)[1]
208
- raise Makit::Error.new("invalid commit: #{commit}") if commit.nil? || commit.empty? || !commit.match?(/\A[0-9a-f]{40}\z/i)
209
- log_filename = File.join(Directories::get_log_directory(url), commit, +"#{RUNTIME_IDENTIFIER}.#{DEVICE}.json")
210
- end
211
- end
212
-
213
- # clone a fresh copy of the repository to a make directory
214
- make_dir = Directories::get_make_commit_directory(url, commit)
215
- FileUtils.rm_rf(make_dir) if Dir.exist?(make_dir)
216
- commands << Makit::RUNNER.execute("git clone #{clone_dir} #{make_dir}")
217
- raise Makit::Error.new("failed to clone repository: #{url} to #{make_dir}") if !Dir.exist?(make_dir)
218
- Dir.chdir(make_dir) do
219
- commands << Makit::RUNNER.execute("git reset --hard #{commit}")
220
- commands << Makit::RUNNER.execute("git log -n 1")
221
-
222
- commands << Makit::RUNNER.execute("bundle install") if File.exist? "Gemfile"
223
- if File.exist? ("Rakefile")
224
- commands << Makit::RUNNER.execute("rake default")
225
- else
226
- commands << Makit::RUNNER.execute("rake default") if File.exist? "rakefile.rb"
227
- end
228
-
229
- make_result = Makit::V1::MakeResult.new(
230
- repository: url,
231
- commit: commit,
232
- branch: "?",
233
- tag: "?",
234
- device: DEVICE,
235
- runtime_identifier: RUNTIME_IDENTIFIER,
236
- )
237
- commands.flatten.each do |command|
238
- make_result.commands << command
239
- end
240
-
241
- # save the MakeResult object to a log file as pretty printed json
242
- FileUtils.mkdir_p(File.dirname(log_filename)) unless Dir.exist?(File.dirname(log_filename))
243
- File.write(log_filename, make_result.to_json)
244
-
245
- return make_result
246
- end
247
- rescue => e
248
- message = "error raised attempting to make repository: #{url} commit: #{commit}\n\n"
249
- message += "#{e.message}\n"
250
- backtrace = e.backtrace.join("\n")
251
- message += "#{backtrace}\n\n"
252
- message += "commands:\n"
253
- commands.flatten.each do |command|
254
- message += Makit::Humanize::get_command_details(command)
255
- end
256
- raise Makit::Error.new(message)
257
- end
258
- end
259
- end
260
- end
261
-
262
- if !File.exist?(".gitignore")
263
- Makit::LOGGER.info("added .gitignore file")
264
- File.open(".gitignore", "w") do |file|
265
- file.puts Makit::Content::GITIGNORE
266
- end
267
- end
1
+ # frozen_string_literal: true
2
+
3
+ require "rake/clean"
4
+ require "logger"
5
+ require "json"
6
+ require "yaml"
7
+ require "google/protobuf"
8
+
9
+ #%w[generated/makit].each do |dir|
10
+ # Dir[File.join(__dir__, dir, "*.rb")].each do |file|
11
+ # require_relative file
12
+ # end
13
+ #end
14
+ if (File.exist?("protos/makit/makit.v1.proto.rb"))
15
+ require_relative "generated/makit/makit.v1_pb"
16
+ else
17
+ require_relative "makit/v1/makit.v1_pb"
18
+ end
19
+
20
+ #%w[makit makit/v1 makit/cli makit/content makit/mp].each do |dir|
21
+ %w[makit makit/cli makit/content makit/mp makit/docs].each do |dir|
22
+ Dir[File.join(__dir__, dir, "*.rb")].each do |file|
23
+ require_relative file
24
+ end
25
+ end
26
+
27
+ module Makit
28
+ class Error < StandardError; end
29
+
30
+ # Constants
31
+ if File.exist? ".makit.project.json"
32
+ PROJECT = Makit::Serializer.open(".makit.project.json", Makit::V1::Project)
33
+ else
34
+ if File.exist? ".makit.project.yml"
35
+ PROJECT = Makit::Serializer.open(".makit.project.yml", Makit::V1::Project)
36
+ else
37
+ PROJECT = Makit::V1::Project.new
38
+ PROJECT.set_default_values
39
+ end
40
+ end
41
+
42
+ STARTTIME = Time.now
43
+ SHOW = Makit::Show.new
44
+ IS_GIT_REPO = Dir.exist? ".git"
45
+ DETACHED = `git status`.include?("detached")
46
+ IS_READ_ONLY = !IS_GIT_REPO || DETACHED
47
+ RUNTIME_IDENTIFIER = Makit::Environment::get_runtime_identifier
48
+ DEVICE = Socket.gethostname
49
+ LOGGER = Makit::Logging::MultiLogger.create_logger
50
+
51
+ # Git Commit and Branch/Tag constants
52
+ ENV["COMMIT_SHA"] = Makit::Git::commitsha
53
+ ENV["COMMIT_BRANCH"] = Makit::Git::branch
54
+
55
+ RUNNER = CommandRunner.new
56
+ GIT_FILE_INFOS = Makit::Git::get_file_infos
57
+ #RUNNER.log_to_artifacts = true
58
+ # Variables
59
+ log_level = Logger::INFO
60
+ package_type = Makit::V1::PackageType::GEM
61
+ commands = Makit::Commands.new
62
+
63
+ # methods
64
+ #
65
+ # initialize a git repository
66
+ def self.init(directory)
67
+ if !Dir.exist?(directory)
68
+ FileUtils.mkdir_p(directory)
69
+ end
70
+ raise Makit::Error.new("directory does not exist: #{directory}") if !Dir.exist?(directory)
71
+ Dir.chdir(directory) do
72
+ File.write(".gitignore", Makit::Content::GITIGNORE) unless File.exist?(".gitignore")
73
+ init = Makit::RUNNER.execute "git init"
74
+ if init.exit_code != 0
75
+ raise Makit::Error.new("failed to initialize local repository: #{directory}\n#{Makit::Humanize.get_command_summary(init)}")
76
+ end
77
+ init
78
+ end
79
+ end
80
+
81
+ # clone a git repository to a local directory in Directories::CLONE
82
+ # returns the Makit::V1::Command for 'git clone ...'
83
+ def self.clone(git_repository)
84
+ commands = []
85
+ # make sure a local clone of the repository exists
86
+ clone_dir = Directories::get_clone_directory(git_repository)
87
+ if (!Dir.exist?(clone_dir))
88
+ commands << Makit::RUNNER.execute("git clone #{git_repository} #{clone_dir}")
89
+ end
90
+ commands
91
+ end
92
+
93
+ # pull the latest changes from the remote repository to a local clone in Directories::CLONE
94
+ def self.pull(git_repository)
95
+ clone_dir = Directories::get_clone_directory(git_repository)
96
+ raise Makit::Error.new("clone directory does not exist: #{clone_dir}") if !Dir.exist?(clone_dir)
97
+ Dir.chdir(clone_dir) do
98
+ request = Makit::V1::CommandRequest.new(
99
+ name: "git",
100
+ arguments: ["pull"],
101
+ directory: clone_dir,
102
+ )
103
+ pull_command = Makit::RUNNER.execute(request)
104
+ raise Makit::Error.new(Makit::Humanize::get_command_details(pull_command)) if pull_command.exit_code != 0
105
+ return pull_command
106
+ end
107
+ end
108
+
109
+ def self.clone_or_pull(git_repository)
110
+ commands = []
111
+ clone_dir = Directories::get_clone_directory(git_repository)
112
+ if Dir.exist?(clone_dir)
113
+ commands << pull(git_repository)
114
+ else
115
+ commands << clone(git_repository)
116
+ end
117
+ commands
118
+ end
119
+
120
+ # log information about a specific repository
121
+ # return an array of GitLogEntry objects
122
+ def self.log(git_repository, limit, skip)
123
+ entries = []
124
+ clone_dir = Directories::get_clone_directory(git_repository)
125
+ raise Makit::Error.new("clone directory does not exist: #{clone_dir}") if !Dir.exist?(clone_dir)
126
+ Dir.chdir(clone_dir) do
127
+ log_command = Makit::RUNNER.execute("git log -n #{limit} --skip #{skip} --date=iso")
128
+ if log_command.exit_code != 0
129
+ lines = log_command.stderr.split("\n")
130
+ # iterate over the lines, generating a GitLogEntry for each commit
131
+ lines.each do |line|
132
+ if line.start_with?("commit")
133
+ commit = line.split(" ")[1]
134
+ entries << GitLogEntry.new(commit)
135
+ end
136
+ if line.start_with?("Author:")
137
+ entries.last.author = line.split(" ")[1..-1].join(" ")
138
+ end
139
+ if line.start_with?("Date:")
140
+ entries.last.date = line.split(" ")[1..-1].join(" ")
141
+ end
142
+ if line.start_with?(" ")
143
+ entries.last.message += line[4..-1]
144
+ end
145
+ end
146
+ end
147
+ end
148
+ entries
149
+ end
150
+
151
+ # work on a local clone of a git repository
152
+ # if the repository does not exist, clone it
153
+ # if the repository exists, pull the latest changes
154
+ # if a build command can be found, execute it and return the result Makit::V1::WorkResult
155
+ def self.work(repository)
156
+ commands = []
157
+ work_dir = Makit::Directories::get_work_directory(repository)
158
+ commands << clone_or_pull(repository)
159
+ clone_dir = Makit::Directories::get_clone_directory(repository)
160
+ if !Dir.exist?(work_dir)
161
+ # make the parent directory for work_dir if it does not exist
162
+ FileUtils.mkdir_p(File.dirname(work_dir)) unless Dir.exist?(File.dirname(work_dir))
163
+ Makit::RUNNER::execute "git clone #{clone_dir} #{work_dir}"
164
+ end
165
+ Dir.chdir(work_dir) do
166
+ # if there is no .gitignore file, create one
167
+ File.write(".gitignore", Makit::Content::GITIGNORE) unless File.exist?(".gitignore")
168
+ end
169
+ nil?
170
+ end
171
+
172
+ def self.enable_monkey_patch
173
+ %w[makit/mp].each do |dir|
174
+ Dir[File.join(__dir__, dir, "*.rb")].each do |file|
175
+ require_relative file
176
+ end
177
+ end
178
+ end
179
+ # Given a git repository URL and a commit id, create a new MakeResult object.
180
+ def self.make(url, commit, force = false)
181
+ log_filename = File.join(Directories::get_log_directory(url), commit, +"#{RUNTIME_IDENTIFIER}.#{DEVICE}.json")
182
+ if File.exist?(log_filename) && !force && commit != "latest"
183
+ begin
184
+ # deserialize the log file to a Makite::V1::MakeResult object
185
+ make_result = Makit::V1::MakeResult.decode_json(File.read(log_filename))
186
+ return make_result
187
+ rescue => e
188
+ # if deserialization fails, delete the log file and continue
189
+ FileUtils.rm(log_filename)
190
+ end
191
+ else
192
+ commands = []
193
+ begin
194
+ clone_or_pull(url).each do |command|
195
+ commands << command
196
+ end
197
+ # make sure a local clone of the repository exists
198
+ clone_dir = Directories::get_clone_directory(url)
199
+ raise Makit::Error.new("clone directory does not exist: #{clone_dir}") if !Dir.exist?(clone_dir)
200
+
201
+ if (commit == "latest")
202
+ Dir.chdir(clone_dir) do
203
+ git_log = Makit::RUNNER.execute("git log -n 1 --date=iso")
204
+
205
+ commands << git_log
206
+ # assert that the commit is valid
207
+ commit = git_log.output.match(/^commit ([0-9a-f]{40})$/i)[1]
208
+ raise Makit::Error.new("invalid commit: #{commit}") if commit.nil? || commit.empty? || !commit.match?(/\A[0-9a-f]{40}\z/i)
209
+ log_filename = File.join(Directories::get_log_directory(url), commit, +"#{RUNTIME_IDENTIFIER}.#{DEVICE}.json")
210
+ end
211
+ end
212
+
213
+ # clone a fresh copy of the repository to a make directory
214
+ make_dir = Directories::get_make_commit_directory(url, commit)
215
+ FileUtils.rm_rf(make_dir) if Dir.exist?(make_dir)
216
+ commands << Makit::RUNNER.execute("git clone #{clone_dir} #{make_dir}")
217
+ raise Makit::Error.new("failed to clone repository: #{url} to #{make_dir}") if !Dir.exist?(make_dir)
218
+ Dir.chdir(make_dir) do
219
+ commands << Makit::RUNNER.execute("git reset --hard #{commit}")
220
+ commands << Makit::RUNNER.execute("git log -n 1")
221
+
222
+ commands << Makit::RUNNER.execute("bundle install") if File.exist? "Gemfile"
223
+ if File.exist? ("Rakefile")
224
+ commands << Makit::RUNNER.execute("rake default")
225
+ else
226
+ commands << Makit::RUNNER.execute("rake default") if File.exist? "rakefile.rb"
227
+ end
228
+
229
+ make_result = Makit::V1::MakeResult.new(
230
+ repository: url,
231
+ commit: commit,
232
+ branch: "?",
233
+ tag: "?",
234
+ device: DEVICE,
235
+ runtime_identifier: RUNTIME_IDENTIFIER,
236
+ )
237
+ commands.flatten.each do |command|
238
+ make_result.commands << command
239
+ end
240
+
241
+ # save the MakeResult object to a log file as pretty printed json
242
+ FileUtils.mkdir_p(File.dirname(log_filename)) unless Dir.exist?(File.dirname(log_filename))
243
+ File.write(log_filename, make_result.to_json)
244
+
245
+ return make_result
246
+ end
247
+ rescue => e
248
+ message = "error raised attempting to make repository: #{url} commit: #{commit}\n\n"
249
+ message += "#{e.message}\n"
250
+ backtrace = e.backtrace.join("\n")
251
+ message += "#{backtrace}\n\n"
252
+ message += "commands:\n"
253
+ commands.flatten.each do |command|
254
+ message += Makit::Humanize::get_command_details(command)
255
+ end
256
+ raise Makit::Error.new(message)
257
+ end
258
+ end
259
+ end
260
+ end
261
+
262
+ if !File.exist?(".gitignore")
263
+ Makit::LOGGER.info("added .gitignore file")
264
+ File.open(".gitignore", "w") do |file|
265
+ file.puts Makit::Content::GITIGNORE
266
+ end
267
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: makit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.94
4
+ version: 0.0.96
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lou Parslow
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-05-30 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: clamp
@@ -44,42 +43,42 @@ dependencies:
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: 4.31.0
46
+ version: '4.31'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: 4.31.0
53
+ version: '4.31'
55
54
  - !ruby/object:Gem::Dependency
56
55
  name: grpc
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - "~>"
60
59
  - !ruby/object:Gem::Version
61
- version: 1.72.0
60
+ version: '1.72'
62
61
  type: :runtime
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
- version: 1.72.0
67
+ version: '1.72'
69
68
  - !ruby/object:Gem::Dependency
70
69
  name: grpc-tools
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - "~>"
74
73
  - !ruby/object:Gem::Version
75
- version: 1.72.0
74
+ version: '1.72'
76
75
  type: :runtime
77
76
  prerelease: false
78
77
  version_requirements: !ruby/object:Gem::Requirement
79
78
  requirements:
80
79
  - - "~>"
81
80
  - !ruby/object:Gem::Version
82
- version: 1.72.0
81
+ version: '1.72'
83
82
  - !ruby/object:Gem::Dependency
84
83
  name: logger
85
84
  requirement: !ruby/object:Gem::Requirement
@@ -150,20 +149,6 @@ dependencies:
150
149
  - - "~>"
151
150
  - !ruby/object:Gem::Version
152
151
  version: '3.1'
153
- - !ruby/object:Gem::Dependency
154
- name: mail
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '2.8'
160
- type: :runtime
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '2.8'
167
152
  description: CI/CD tools for Ruby developers.
168
153
  email:
169
154
  - lou.parslow@gmail.com
@@ -171,8 +156,6 @@ executables: []
171
156
  extensions: []
172
157
  extra_rdoc_files: []
173
158
  files:
174
- - lib/generated/makit/v1/makit.v1_pb.rb
175
- - lib/generated/makit/v1/web/link_pb.rb
176
159
  - lib/makit.rb
177
160
  - lib/makit/apache.rb
178
161
  - lib/makit/cli/clean.rb
@@ -239,7 +222,6 @@ metadata:
239
222
  homepage_uri: https://gitlab.com/gems-rb/makit
240
223
  source_code_uri: https://gitlab.com/gems-rb/makit
241
224
  changelog_uri: https://gitlab.com/gems-rb/makit/CHANGELOG.md
242
- post_install_message:
243
225
  rdoc_options: []
244
226
  require_paths:
245
227
  - lib
@@ -254,8 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
236
  - !ruby/object:Gem::Version
255
237
  version: '0'
256
238
  requirements: []
257
- rubygems_version: 3.5.23
258
- signing_key:
239
+ rubygems_version: 3.6.9
259
240
  specification_version: 4
260
241
  summary: CI/CD tools for Ruby developers.
261
242
  test_files: []