makit 0.0.57 → 0.0.59

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 (53) 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 -399
  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 +140 -140
  21. data/lib/makit/directory.rb +219 -200
  22. data/lib/makit/dotnet.rb +182 -182
  23. data/lib/makit/environment.rb +127 -127
  24. data/lib/makit/fileinfo.rb +16 -16
  25. data/lib/makit/files.rb +47 -47
  26. data/lib/makit/git.rb +96 -96
  27. data/lib/makit/gitlab_runner.rb +60 -60
  28. data/lib/makit/humanize.rb +129 -129
  29. data/lib/makit/indexer.rb +56 -56
  30. data/lib/makit/logging.rb +96 -96
  31. data/lib/makit/markdown.rb +75 -75
  32. data/lib/makit/mp/basic_object_mp.rb +16 -16
  33. data/lib/makit/mp/command_request.mp.rb +16 -16
  34. data/lib/makit/mp/project_mp.rb +210 -210
  35. data/lib/makit/mp/string_mp.rb +137 -137
  36. data/lib/makit/nuget.rb +57 -57
  37. data/lib/makit/protoc.rb +104 -104
  38. data/lib/makit/secrets.rb +50 -0
  39. data/lib/makit/serializer.rb +115 -115
  40. data/lib/makit/show.rb +111 -111
  41. data/lib/makit/storage.rb +131 -131
  42. data/lib/makit/symbols.rb +149 -149
  43. data/lib/makit/tasks.rb +64 -61
  44. data/lib/makit/tree.rb +37 -37
  45. data/lib/makit/v1/makit.v1_services_pb.rb +25 -25
  46. data/lib/makit/version.rb +68 -68
  47. data/lib/makit/wix.rb +95 -95
  48. data/lib/makit/yaml.rb +19 -19
  49. data/lib/makit/zip.rb +17 -17
  50. data/lib/makit.rb +268 -267
  51. metadata +3 -4
  52. data/lib/generated/makit/v1/makit.v1_pb.rb +0 -35
  53. data/lib/generated/makit/v1/web/link_pb.rb +0 -20
data/lib/makit.rb CHANGED
@@ -1,267 +1,268 @@
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].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].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
+
52
+ # Git Commit and Branch/Tag constants
53
+ ENV["COMMIT_SHA"] = Makit::Git::commitsha
54
+ ENV["COMMIT_BRANCH"] = Makit::Git::branch
55
+
56
+ RUNNER = CommandRunner.new
57
+ GIT_FILE_INFOS = Makit::Git::get_file_infos
58
+ #RUNNER.log_to_artifacts = true
59
+ # Variables
60
+ log_level = Logger::INFO
61
+ package_type = Makit::V1::PackageType::GEM
62
+ commands = Makit::Commands.new
63
+
64
+ # methods
65
+ #
66
+ # initialize a git repository
67
+ def self.init(directory)
68
+ if !Dir.exist?(directory)
69
+ FileUtils.mkdir_p(directory)
70
+ end
71
+ raise Makit::Error.new("directory does not exist: #{directory}") if !Dir.exist?(directory)
72
+ Dir.chdir(directory) do
73
+ File.write(".gitignore", Makit::Content::GITIGNORE) unless File.exist?(".gitignore")
74
+ init = Makit::RUNNER.execute "git init"
75
+ if init.exit_code != 0
76
+ raise Makit::Error.new("failed to initialize local repository: #{directory}\n#{Makit::Humanize.get_command_summary(init)}")
77
+ end
78
+ init
79
+ end
80
+ end
81
+
82
+ # clone a git repository to a local directory in Directories::CLONE
83
+ # returns the Makit::V1::Command for 'git clone ...'
84
+ def self.clone(git_repository)
85
+ commands = []
86
+ # make sure a local clone of the repository exists
87
+ clone_dir = Directories::get_clone_directory(git_repository)
88
+ if (!Dir.exist?(clone_dir))
89
+ commands << Makit::RUNNER.execute("git clone #{git_repository} #{clone_dir}")
90
+ end
91
+ commands
92
+ end
93
+
94
+ # pull the latest changes from the remote repository to a local clone in Directories::CLONE
95
+ def self.pull(git_repository)
96
+ clone_dir = Directories::get_clone_directory(git_repository)
97
+ raise Makit::Error.new("clone directory does not exist: #{clone_dir}") if !Dir.exist?(clone_dir)
98
+ Dir.chdir(clone_dir) do
99
+ request = Makit::V1::CommandRequest.new(
100
+ name: "git",
101
+ arguments: ["pull"],
102
+ directory: clone_dir,
103
+ )
104
+ pull_command = Makit::RUNNER.execute(request)
105
+ raise Makit::Error.new(Makit::Humanize::get_command_details(pull_command)) if pull_command.exit_code != 0
106
+ return pull_command
107
+ end
108
+ end
109
+
110
+ def self.clone_or_pull(git_repository)
111
+ commands = []
112
+ clone_dir = Directories::get_clone_directory(git_repository)
113
+ if Dir.exist?(clone_dir)
114
+ commands << pull(git_repository)
115
+ else
116
+ commands << clone(git_repository)
117
+ end
118
+ commands
119
+ end
120
+
121
+ # log information about a specific repository
122
+ # return an array of GitLogEntry objects
123
+ def self.log(git_repository, limit, skip)
124
+ entries = []
125
+ clone_dir = Directories::get_clone_directory(git_repository)
126
+ raise Makit::Error.new("clone directory does not exist: #{clone_dir}") if !Dir.exist?(clone_dir)
127
+ Dir.chdir(clone_dir) do
128
+ log_command = Makit::RUNNER.execute("git log -n #{limit} --skip #{skip} --date=iso")
129
+ if log_command.exit_code != 0
130
+ lines = log_command.stderr.split("\n")
131
+ # iterate over the lines, generating a GitLogEntry for each commit
132
+ lines.each do |line|
133
+ if line.start_with?("commit")
134
+ commit = line.split(" ")[1]
135
+ entries << GitLogEntry.new(commit)
136
+ end
137
+ if line.start_with?("Author:")
138
+ entries.last.author = line.split(" ")[1..-1].join(" ")
139
+ end
140
+ if line.start_with?("Date:")
141
+ entries.last.date = line.split(" ")[1..-1].join(" ")
142
+ end
143
+ if line.start_with?(" ")
144
+ entries.last.message += line[4..-1]
145
+ end
146
+ end
147
+ end
148
+ end
149
+ entries
150
+ end
151
+
152
+ # work on a local clone of a git repository
153
+ # if the repository does not exist, clone it
154
+ # if the repository exists, pull the latest changes
155
+ # if a build command can be found, execute it and return the result Makit::V1::WorkResult
156
+ def self.work(repository)
157
+ commands = []
158
+ work_dir = Makit::Directories::get_work_directory(repository)
159
+ commands << clone_or_pull(repository)
160
+ clone_dir = Makit::Directories::get_clone_directory(repository)
161
+ if !Dir.exist?(work_dir)
162
+ # make the parent directory for work_dir if it does not exist
163
+ FileUtils.mkdir_p(File.dirname(work_dir)) unless Dir.exist?(File.dirname(work_dir))
164
+ Makit::RUNNER::execute "git clone #{clone_dir} #{work_dir}"
165
+ end
166
+ Dir.chdir(work_dir) do
167
+ # if there is no .gitignore file, create one
168
+ File.write(".gitignore", Makit::Content::GITIGNORE) unless File.exist?(".gitignore")
169
+ end
170
+ nil?
171
+ end
172
+
173
+ def self.enable_monkey_patch
174
+ %w[makit/mp].each do |dir|
175
+ Dir[File.join(__dir__, dir, "*.rb")].each do |file|
176
+ require_relative file
177
+ end
178
+ end
179
+ end
180
+ # Given a git repository URL and a commit id, create a new MakeResult object.
181
+ def self.make(url, commit, force = false)
182
+ log_filename = File.join(Directories::get_log_directory(url), commit, +"#{RUNTIME_IDENTIFIER}.#{DEVICE}.json")
183
+ if File.exist?(log_filename) && !force && commit != "latest"
184
+ begin
185
+ # deserialize the log file to a Makite::V1::MakeResult object
186
+ make_result = Makit::V1::MakeResult.decode_json(File.read(log_filename))
187
+ return make_result
188
+ rescue => e
189
+ # if deserialization fails, delete the log file and continue
190
+ FileUtils.rm(log_filename)
191
+ end
192
+ else
193
+ commands = []
194
+ begin
195
+ clone_or_pull(url).each do |command|
196
+ commands << command
197
+ end
198
+ # make sure a local clone of the repository exists
199
+ clone_dir = Directories::get_clone_directory(url)
200
+ raise Makit::Error.new("clone directory does not exist: #{clone_dir}") if !Dir.exist?(clone_dir)
201
+
202
+ if (commit == "latest")
203
+ Dir.chdir(clone_dir) do
204
+ git_log = Makit::RUNNER.execute("git log -n 1 --date=iso")
205
+
206
+ commands << git_log
207
+ # assert that the commit is valid
208
+ commit = git_log.output.match(/^commit ([0-9a-f]{40})$/i)[1]
209
+ raise Makit::Error.new("invalid commit: #{commit}") if commit.nil? || commit.empty? || !commit.match?(/\A[0-9a-f]{40}\z/i)
210
+ log_filename = File.join(Directories::get_log_directory(url), commit, +"#{RUNTIME_IDENTIFIER}.#{DEVICE}.json")
211
+ end
212
+ end
213
+
214
+ # clone a fresh copy of the repository to a make directory
215
+ make_dir = Directories::get_make_commit_directory(url, commit)
216
+ FileUtils.rm_rf(make_dir) if Dir.exist?(make_dir)
217
+ commands << Makit::RUNNER.execute("git clone #{clone_dir} #{make_dir}")
218
+ raise Makit::Error.new("failed to clone repository: #{url} to #{make_dir}") if !Dir.exist?(make_dir)
219
+ Dir.chdir(make_dir) do
220
+ commands << Makit::RUNNER.execute("git reset --hard #{commit}")
221
+ commands << Makit::RUNNER.execute("git log -n 1")
222
+
223
+ commands << Makit::RUNNER.execute("bundle install") if File.exist? "Gemfile"
224
+ if File.exist? ("Rakefile")
225
+ commands << Makit::RUNNER.execute("rake default")
226
+ else
227
+ commands << Makit::RUNNER.execute("rake default") if File.exist? "rakefile.rb"
228
+ end
229
+
230
+ make_result = Makit::V1::MakeResult.new(
231
+ repository: url,
232
+ commit: commit,
233
+ branch: "?",
234
+ tag: "?",
235
+ device: DEVICE,
236
+ runtime_identifier: RUNTIME_IDENTIFIER,
237
+ )
238
+ commands.flatten.each do |command|
239
+ make_result.commands << command
240
+ end
241
+
242
+ # save the MakeResult object to a log file as pretty printed json
243
+ FileUtils.mkdir_p(File.dirname(log_filename)) unless Dir.exist?(File.dirname(log_filename))
244
+ File.write(log_filename, make_result.to_json)
245
+
246
+ return make_result
247
+ end
248
+ rescue => e
249
+ message = "error raised attempting to make repository: #{url} commit: #{commit}\n\n"
250
+ message += "#{e.message}\n"
251
+ backtrace = e.backtrace.join("\n")
252
+ message += "#{backtrace}\n\n"
253
+ message += "commands:\n"
254
+ commands.flatten.each do |command|
255
+ message += Makit::Humanize::get_command_details(command)
256
+ end
257
+ raise Makit::Error.new(message)
258
+ end
259
+ end
260
+ end
261
+ end
262
+
263
+ if !File.exist?(".gitignore")
264
+ Makit::LOGGER.info("added .gitignore file")
265
+ File.open(".gitignore", "w") do |file|
266
+ file.puts Makit::Content::GITIGNORE
267
+ end
268
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: makit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.57
4
+ version: 0.0.59
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lou Parslow
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-01-22 00:00:00.000000000 Z
11
+ date: 2025-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp
@@ -157,8 +157,6 @@ executables: []
157
157
  extensions: []
158
158
  extra_rdoc_files: []
159
159
  files:
160
- - lib/generated/makit/v1/makit.v1_pb.rb
161
- - lib/generated/makit/v1/web/link_pb.rb
162
160
  - lib/makit.rb
163
161
  - lib/makit/apache.rb
164
162
  - lib/makit/cli/clean.rb
@@ -196,6 +194,7 @@ files:
196
194
  - lib/makit/mp/string_mp.rb
197
195
  - lib/makit/nuget.rb
198
196
  - lib/makit/protoc.rb
197
+ - lib/makit/secrets.rb
199
198
  - lib/makit/serializer.rb
200
199
  - lib/makit/show.rb
201
200
  - lib/makit/storage.rb
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: makit/v1/makit.v1.proto
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/protobuf/timestamp_pb'
8
- require 'google/protobuf/duration_pb'
9
-
10
-
11
- descriptor_data = "\n\x17makit/v1/makit.v1.proto\x12\x08makit.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\"/\n\x0b\x45nvironment\x12\n\n\x02os\x18\x01 \x01(\t\x12\x14\n\x0c\x61rchitecture\x18\x02 \x01(\t\"\x92\x02\n\rDotNetProject\x12\x10\n\x08template\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06output\x18\x03 \x01(\t\x12\x10\n\x08packages\x18\x04 \x03(\t\x12\x12\n\nreferences\x18\x05 \x03(\t\x12\n\n\x02os\x18\x06 \x01(\t\x12\x10\n\x08\x63ommands\x18\x07 \x03(\t\x12-\n\nbuild_args\x18\x08 \x03(\x0b\x32\x19.makit.v1.DotNetBuildArgs\x12\x31\n\x0cpublish_args\x18\t \x03(\x0b\x32\x1b.makit.v1.DotNetPublishArgs\x12+\n\ttest_args\x18\n \x03(\x0b\x32\x18.makit.v1.DotNetTestArgs\"8\n\x0f\x44otNetBuildArgs\x12\x15\n\rconfiguration\x18\x01 \x01(\t\x12\x0e\n\x06output\x18\x02 \x01(\t\":\n\x11\x44otNetPublishArgs\x12\x15\n\rconfiguration\x18\x01 \x01(\t\x12\x0e\n\x06output\x18\x02 \x01(\t\"7\n\x0e\x44otNetTestArgs\x12\x15\n\rconfiguration\x18\x01 \x01(\t\x12\x0e\n\x06output\x18\x02 \x01(\t\"\xa8\x01\n\x07Project\x12\x16\n\x0egit_remote_url\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tartifacts\x18\x03 \x03(\t\x12\x32\n\x10\x63ommand_requests\x18\x04 \x03(\x0b\x32\x18.makit.v1.CommandRequest\x12\x30\n\x0f\x64otnet_projects\x18\x05 \x03(\x0b\x32\x17.makit.v1.DotNetProject\"\xa5\x01\n\x0e\x43ommandRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\targuments\x18\x02 \x03(\t\x12+\n\x07timeout\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tdirectory\x18\x04 \x01(\t\x12\x0c\n\x04task\x18\x05 \x01(\t\x12\r\n\x05input\x18\x06 \x01(\x0c\x12\x15\n\rexit_on_error\x18\x07 \x01(\x08\"\x91\x02\n\x07\x43ommand\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\targuments\x18\x03 \x03(\t\x12\x11\n\texit_code\x18\x04 \x01(\x05\x12\r\n\x05input\x18\x05 \x01(\x0c\x12\x0e\n\x06output\x18\x06 \x01(\x0c\x12\r\n\x05\x65rror\x18\x07 \x01(\x0c\x12.\n\nstarted_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x08\x64uration\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0c\n\x04user\x18\n \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x0b \x01(\t\x12\n\n\x02os\x18\x0c \x01(\t\x12\x11\n\tdirectory\x18\r \x01(\t\"I\n\rConfiguration\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x08\x63ommands\x18\x02 \x03(\x0b\x32\x18.makit.v1.CommandRequest\"3\n\rGitRepository\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rrelative_path\x18\x02 \x01(\t\"h\n\x0bGitLogEntry\x12\x0e\n\x06\x63ommit\x18\x01 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x02 \x01(\t\x12(\n\x04\x64\x61te\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07message\x18\x04 \x01(\t\"\xc8\x01\n\nMakeResult\x12\x12\n\nrepository\x18\x01 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0b\n\x03tag\x18\x04 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x05 \x01(\t\x12\x1a\n\x12runtime_identifier\x18\x06 \x01(\t\x12#\n\x08\x63ommands\x18\x07 \x03(\x0b\x32\x11.makit.v1.Command\x12\x14\n\x0cinitial_size\x18\x08 \x01(\x05\x12\x12\n\nfinal_size\x18\t \x01(\x05\"?\n\rDotNetNewArgs\x12\x10\n\x08template\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06output\x18\x03 \x01(\t\"^\n\rManifestEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x31\n\rlast_modified\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04size\x18\x03 \x01(\x03**\n\x08Language\x12\x08\n\x04RUBY\x10\x00\x12\n\n\x06\x43SHARP\x10\x01\x12\x08\n\x04RUST\x10\x02*,\n\x0bPackageType\x12\x07\n\x03GEM\x10\x00\x12\t\n\x05NUGET\x10\x01\x12\t\n\x05\x43RATE\x10\x03\x32H\n\x0e\x43ommandService\x12\x36\n\x07\x45xecute\x12\x18.makit.v1.CommandRequest\x1a\x11.makit.v1.Commandb\x06proto3"
12
-
13
- pool = Google::Protobuf::DescriptorPool.generated_pool
14
- pool.add_serialized_file(descriptor_data)
15
-
16
- module Makit
17
- module V1
18
- Environment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.Environment").msgclass
19
- DotNetProject = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.DotNetProject").msgclass
20
- DotNetBuildArgs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.DotNetBuildArgs").msgclass
21
- DotNetPublishArgs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.DotNetPublishArgs").msgclass
22
- DotNetTestArgs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.DotNetTestArgs").msgclass
23
- Project = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.Project").msgclass
24
- CommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.CommandRequest").msgclass
25
- Command = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.Command").msgclass
26
- Configuration = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.Configuration").msgclass
27
- GitRepository = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.GitRepository").msgclass
28
- GitLogEntry = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.GitLogEntry").msgclass
29
- MakeResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.MakeResult").msgclass
30
- DotNetNewArgs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.DotNetNewArgs").msgclass
31
- ManifestEntry = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.ManifestEntry").msgclass
32
- Language = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.Language").enummodule
33
- PackageType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.PackageType").enummodule
34
- end
35
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: makit/v1/web/link.proto
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/protobuf/timestamp_pb'
8
- require 'google/protobuf/duration_pb'
9
-
10
-
11
- descriptor_data = "\n\x17makit/v1/web/link.proto\x12\x08makit.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\"6\n\x04Link\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\tb\x06proto3"
12
-
13
- pool = Google::Protobuf::DescriptorPool.generated_pool
14
- pool.add_serialized_file(descriptor_data)
15
-
16
- module Makit
17
- module V1
18
- Link = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.Link").msgclass
19
- end
20
- end