makit 0.0.99 → 0.0.112
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/README.md +41 -0
- data/exe/makit +5 -0
- data/lib/makit/apache.rb +28 -32
- data/lib/makit/cli/build_commands.rb +500 -0
- data/lib/makit/cli/generators/base_generator.rb +74 -0
- data/lib/makit/cli/generators/dotnet_generator.rb +50 -0
- data/lib/makit/cli/generators/generator_factory.rb +49 -0
- data/lib/makit/cli/generators/node_generator.rb +50 -0
- data/lib/makit/cli/generators/ruby_generator.rb +77 -0
- data/lib/makit/cli/generators/rust_generator.rb +50 -0
- data/lib/makit/cli/generators/templates/dotnet_templates.rb +167 -0
- data/lib/makit/cli/generators/templates/node_templates.rb +161 -0
- data/lib/makit/cli/generators/templates/ruby/gemfile.rb +26 -0
- data/lib/makit/cli/generators/templates/ruby/gemspec.rb +40 -0
- data/lib/makit/cli/generators/templates/ruby/main_lib.rb +33 -0
- data/lib/makit/cli/generators/templates/ruby/rakefile.rb +35 -0
- data/lib/makit/cli/generators/templates/ruby/readme.rb +63 -0
- data/lib/makit/cli/generators/templates/ruby/test.rb +39 -0
- data/lib/makit/cli/generators/templates/ruby/test_helper.rb +29 -0
- data/lib/makit/cli/generators/templates/ruby/version.rb +29 -0
- data/lib/makit/cli/generators/templates/rust_templates.rb +128 -0
- data/lib/makit/cli/main.rb +62 -33
- data/lib/makit/cli/project_commands.rb +868 -0
- data/lib/makit/cli/repository_commands.rb +661 -0
- data/lib/makit/cli/utility_commands.rb +521 -0
- data/lib/makit/commands/factory.rb +359 -0
- data/lib/makit/commands/middleware/base.rb +73 -0
- data/lib/makit/commands/middleware/cache.rb +248 -0
- data/lib/makit/commands/middleware/command_logger.rb +320 -0
- data/lib/makit/commands/middleware/unified_logger.rb +243 -0
- data/lib/makit/commands/middleware/validator.rb +269 -0
- data/lib/makit/commands/request.rb +254 -0
- data/lib/makit/commands/result.rb +323 -0
- data/lib/makit/commands/runner.rb +337 -0
- data/lib/makit/commands/strategies/base.rb +160 -0
- data/lib/makit/commands/strategies/synchronous.rb +134 -0
- data/lib/makit/commands.rb +51 -21
- data/lib/makit/configuration/gitlab_helper.rb +60 -0
- data/lib/makit/configuration/project.rb +127 -0
- data/lib/makit/configuration/rakefile_helper.rb +43 -0
- data/lib/makit/configuration/step.rb +34 -0
- data/lib/makit/configuration.rb +14 -0
- data/lib/makit/content/default_gitignore.rb +7 -5
- data/lib/makit/content/default_rakefile.rb +13 -11
- data/lib/makit/content/gem_rakefile.rb +16 -14
- data/lib/makit/context.rb +1 -0
- data/lib/makit/data.rb +49 -50
- data/lib/makit/directories.rb +141 -145
- data/lib/makit/directory.rb +262 -276
- data/lib/makit/docs/files.rb +89 -94
- data/lib/makit/docs/rake.rb +102 -106
- data/lib/makit/dotnet/cli.rb +65 -0
- data/lib/makit/dotnet/project.rb +153 -0
- data/lib/makit/dotnet/solution.rb +38 -0
- data/lib/makit/dotnet/solution_classlib.rb +239 -0
- data/lib/makit/dotnet/solution_console.rb +264 -0
- data/lib/makit/dotnet/solution_maui.rb +354 -0
- data/lib/makit/dotnet/solution_wasm.rb +275 -0
- data/lib/makit/dotnet/solution_wpf.rb +304 -0
- data/lib/makit/dotnet.rb +102 -219
- data/lib/makit/email.rb +90 -61
- data/lib/makit/environment.rb +142 -139
- data/lib/makit/examples/runner.rb +370 -0
- data/lib/makit/exceptions.rb +45 -0
- data/lib/makit/fileinfo.rb +24 -26
- data/lib/makit/files.rb +43 -47
- data/lib/makit/gems.rb +29 -28
- data/lib/makit/git/cli.rb +54 -0
- data/lib/makit/git/repository.rb +90 -0
- data/lib/makit/git.rb +98 -145
- data/lib/makit/gitlab_runner.rb +59 -60
- data/lib/makit/humanize.rb +137 -129
- data/lib/makit/indexer.rb +47 -56
- data/lib/makit/logging/configuration.rb +305 -0
- data/lib/makit/logging/format_registry.rb +84 -0
- data/lib/makit/logging/formatters/base.rb +39 -0
- data/lib/makit/logging/formatters/console_formatter.rb +140 -0
- data/lib/makit/logging/formatters/json_formatter.rb +65 -0
- data/lib/makit/logging/formatters/plain_text_formatter.rb +71 -0
- data/lib/makit/logging/formatters/text_formatter.rb +64 -0
- data/lib/makit/logging/log_request.rb +115 -0
- data/lib/makit/logging/logger.rb +163 -0
- data/lib/makit/logging/sinks/base.rb +91 -0
- data/lib/makit/logging/sinks/console.rb +72 -0
- data/lib/makit/logging/sinks/file_sink.rb +92 -0
- data/lib/makit/logging/sinks/structured.rb +129 -0
- data/lib/makit/logging/sinks/unified_file_sink.rb +303 -0
- data/lib/makit/logging.rb +530 -106
- data/lib/makit/markdown.rb +75 -75
- data/lib/makit/mp/basic_object_mp.rb +17 -16
- data/lib/makit/mp/command_mp.rb +13 -13
- data/lib/makit/mp/command_request.mp.rb +17 -16
- data/lib/makit/mp/project_mp.rb +199 -210
- data/lib/makit/mp/string_mp.rb +193 -176
- data/lib/makit/nuget.rb +74 -72
- data/lib/makit/port.rb +32 -34
- data/lib/makit/process.rb +163 -65
- data/lib/makit/protoc.rb +107 -104
- data/lib/makit/rake/cli.rb +196 -0
- data/lib/makit/rake.rb +25 -25
- data/lib/makit/ruby/cli.rb +185 -0
- data/lib/makit/ruby.rb +25 -0
- data/lib/makit/secrets.rb +51 -51
- data/lib/makit/serializer.rb +130 -115
- data/lib/makit/services/builder.rb +186 -0
- data/lib/makit/services/error_handler.rb +226 -0
- data/lib/makit/services/repository_manager.rb +229 -0
- data/lib/makit/services/validator.rb +112 -0
- data/lib/makit/setup/classlib.rb +53 -0
- data/lib/makit/setup/gem.rb +263 -0
- data/lib/makit/setup/runner.rb +45 -0
- data/lib/makit/setup.rb +5 -0
- data/lib/makit/show.rb +110 -110
- data/lib/makit/storage.rb +126 -131
- data/lib/makit/symbols.rb +170 -149
- data/lib/makit/task_info.rb +128 -86
- data/lib/makit/tasks/at_exit.rb +13 -0
- data/lib/makit/tasks/build.rb +19 -0
- data/lib/makit/tasks/clean.rb +11 -0
- data/lib/makit/tasks/hook_manager.rb +393 -0
- data/lib/makit/tasks/init.rb +47 -0
- data/lib/makit/tasks/integrate.rb +17 -0
- data/lib/makit/tasks/pull_incoming.rb +11 -0
- data/lib/makit/tasks/setup.rb +6 -0
- data/lib/makit/tasks/sync.rb +12 -0
- data/lib/makit/tasks/tag.rb +15 -0
- data/lib/makit/tasks/task_monkey_patch.rb +79 -0
- data/lib/makit/tasks.rb +15 -150
- data/lib/makit/test_cache.rb +239 -0
- data/lib/makit/tree.rb +37 -37
- data/lib/makit/v1/makit.v1_pb.rb +3 -4
- data/lib/makit/v1/makit.v1_services_pb.rb +27 -25
- data/lib/makit/version.rb +5 -61
- data/lib/makit/version_util.rb +21 -0
- data/lib/makit/wix.rb +95 -95
- data/lib/makit/yaml.rb +29 -17
- data/lib/makit/zip.rb +17 -17
- data/lib/makit copy.rb +44 -0
- data/lib/makit.rb +40 -267
- metadata +117 -110
- data/lib/makit/cli/clean.rb +0 -14
- data/lib/makit/cli/clone.rb +0 -59
- data/lib/makit/cli/init.rb +0 -38
- data/lib/makit/cli/make.rb +0 -54
- data/lib/makit/cli/new.rb +0 -37
- data/lib/makit/cli/nuget_cache.rb +0 -38
- data/lib/makit/cli/pull.rb +0 -31
- data/lib/makit/cli/setup.rb +0 -71
- data/lib/makit/cli/work.rb +0 -21
- data/lib/makit/command_runner.rb +0 -404
- data/lib/makit/content/default_gitignore.txt +0 -222
data/lib/makit/email.rb
CHANGED
@@ -1,61 +1,90 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
module Makit
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
to
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Makit
|
4
|
+
# Provides email functionality for sending notifications and reports.
|
5
|
+
#
|
6
|
+
# This class handles SMTP configuration and email delivery, with built-in support
|
7
|
+
# for Gmail SMTP and graceful handling when the mail gem is not available.
|
8
|
+
#
|
9
|
+
# @example Basic usage
|
10
|
+
# email = Makit::Email.new
|
11
|
+
# email.configure_gmail_defaults
|
12
|
+
# email.send(subject: "Build Complete", body: "Your build finished successfully")
|
13
|
+
#
|
14
|
+
class Email
|
15
|
+
begin
|
16
|
+
require "mail"
|
17
|
+
MAIL_AVAILABLE = true
|
18
|
+
rescue LoadError
|
19
|
+
MAIL_AVAILABLE = false
|
20
|
+
end
|
21
|
+
|
22
|
+
def configure_gmail_defaults
|
23
|
+
unless MAIL_AVAILABLE
|
24
|
+
raise LoadError, "Mail gem is not available. Add 'mail' to your Gemfile to use email functionality."
|
25
|
+
end
|
26
|
+
|
27
|
+
Mail.defaults do
|
28
|
+
delivery_method :smtp, {
|
29
|
+
address: "smtp.gmail.com",
|
30
|
+
port: 587,
|
31
|
+
domain: "gmail.com",
|
32
|
+
user_name: ENV.fetch("SMTP_USERNAME", nil),
|
33
|
+
password: ENV.fetch("SMTP_PASSWORD", nil),
|
34
|
+
authentication: "plain",
|
35
|
+
enable_starttls_auto: true,
|
36
|
+
}
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def send_test_email(subject:, body:, to: ENV.fetch("MAKIT_EMAIL_RECIPIENT", nil))
|
41
|
+
unless MAIL_AVAILABLE
|
42
|
+
raise LoadError, "Mail gem is not available. Add 'mail' to your Gemfile to use email functionality."
|
43
|
+
end
|
44
|
+
|
45
|
+
raise ArgumentError, "Recipient email not set. Please set MAKIT_EMAIL_RECIPIENT environment variable" unless to
|
46
|
+
|
47
|
+
mail = Mail.new do
|
48
|
+
from ENV.fetch("SMTP_USERNAME", nil)
|
49
|
+
to to
|
50
|
+
subject subject
|
51
|
+
body body
|
52
|
+
end
|
53
|
+
|
54
|
+
begin
|
55
|
+
mail.deliver!
|
56
|
+
true
|
57
|
+
rescue StandardError => e
|
58
|
+
puts "Failed to send email: #{e.message}"
|
59
|
+
false
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def send(subject:, body:)
|
64
|
+
send_to(to: ENV.fetch("MAKIT_EMAIL_RECIPIENT", nil), subject: subject, body: body)
|
65
|
+
end
|
66
|
+
|
67
|
+
def send_to(to:, subject:, body:)
|
68
|
+
unless MAIL_AVAILABLE
|
69
|
+
raise LoadError, "Mail gem is not available. Add 'mail' to your Gemfile to use email functionality."
|
70
|
+
end
|
71
|
+
|
72
|
+
raise ArgumentError, "Recipient email not set" unless to
|
73
|
+
|
74
|
+
mail = Mail.new do
|
75
|
+
from ENV.fetch("SMTP_USERNAME", nil)
|
76
|
+
to to
|
77
|
+
subject subject
|
78
|
+
body body
|
79
|
+
end
|
80
|
+
|
81
|
+
begin
|
82
|
+
mail.deliver!
|
83
|
+
true
|
84
|
+
rescue StandardError => e
|
85
|
+
puts "Failed to send email: #{e.message}"
|
86
|
+
false
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
data/lib/makit/environment.rb
CHANGED
@@ -1,139 +1,142 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
#
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
#Object.constants.each { |c| constants[c] = Object.const_get(c)}# puts "#{c} = #{Object.const_get(c)}" }
|
38
|
-
constants
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.rake_file_name
|
42
|
-
caller_locations.each do |location|
|
43
|
-
return location.absolute_path if location.absolute_path&.end_with?("Rakefile")
|
44
|
-
end
|
45
|
-
nil
|
46
|
-
end
|
47
|
-
|
48
|
-
def self.gem_data_directory
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
def self.project_root_directory
|
53
|
-
if
|
54
|
-
File.dirname(
|
55
|
-
|
56
|
-
|
57
|
-
#
|
58
|
-
|
59
|
-
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def self.get_relative_directory(url)
|
64
|
-
url = url.gsub("https://", "").gsub("http://", "")
|
65
|
-
url
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
url
|
77
|
-
#url = url.gsub("gitlab.com","gitlab")
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "directory"
|
4
|
+
# This module provides classes for the Makit gem.
|
5
|
+
module Makit
|
6
|
+
# This class provide methods for working with the system Environment.
|
7
|
+
#
|
8
|
+
class Environment
|
9
|
+
def self.current_user
|
10
|
+
if Makit::Environment.is_windows?
|
11
|
+
end
|
12
|
+
`whoami`
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.which(name)
|
16
|
+
return name if File.exist?(name)
|
17
|
+
|
18
|
+
["", ".exe", ".bat", ".cmd"].each do |ext|
|
19
|
+
aname = name + ext
|
20
|
+
return aname if File.exist?(aname)
|
21
|
+
|
22
|
+
ENV["PATH"].split(File::PATH_SEPARATOR).each do |path|
|
23
|
+
apath = "#{path.gsub("\\", "/")}/#{aname}".gsub("//", "/")
|
24
|
+
return apath if File.exist?(apath)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
""
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.constants_hash
|
31
|
+
constants = {}
|
32
|
+
# collect all constants that are all uppercase
|
33
|
+
Object.constants.each do |c|
|
34
|
+
# puts "#{c} = #{Object.const_get(c)}" }
|
35
|
+
constants[c] = Object.const_get(c) if c == c.upcase
|
36
|
+
end
|
37
|
+
# Object.constants.each { |c| constants[c] = Object.const_get(c)}# puts "#{c} = #{Object.const_get(c)}" }
|
38
|
+
constants
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.rake_file_name
|
42
|
+
caller_locations.each do |location|
|
43
|
+
return location.absolute_path if location.absolute_path&.end_with?("Rakefile")
|
44
|
+
end
|
45
|
+
nil
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.gem_data_directory
|
49
|
+
File.join(Dir.home, ".makit")
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.project_root_directory
|
53
|
+
if Makit::Environment.rake_file_name.nil?
|
54
|
+
Makit::Directory.find_directory_with_pattern(File.dirname(__FILE__), "Rakefile")
|
55
|
+
# lass Directory
|
56
|
+
# def self.find_directory_with_pattern(starting_directory, pattern)
|
57
|
+
# nil
|
58
|
+
else
|
59
|
+
File.dirname(Makit::Environment.rake_file_name)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.get_relative_directory(url)
|
64
|
+
url = url.gsub("https://", "").gsub("http://", "")
|
65
|
+
url.gsub("gitlab.com", "gitlab")
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.get_code_root
|
69
|
+
# user home directory + "code"
|
70
|
+
File.join(Dir.home, "code")
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.get_work_directory(url)
|
74
|
+
raise "invalid url" unless url.include? "https://"
|
75
|
+
|
76
|
+
url.gsub("https://", "").gsub("http://", "")
|
77
|
+
# url = url.gsub("gitlab.com","gitlab")
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.get_work_base_directory
|
81
|
+
File.join(Dir.home, ".makit", "work")
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.is_windows?
|
85
|
+
RbConfig::CONFIG["host_os"] =~ /mswin|msys|mingw|cygwin|bccwin|wince|emc/
|
86
|
+
end
|
87
|
+
|
88
|
+
def self.is_mac?
|
89
|
+
RbConfig::CONFIG["host_os"] =~ /darwin/
|
90
|
+
end
|
91
|
+
|
92
|
+
def self.is_linux?
|
93
|
+
RbConfig::CONFIG["host_os"] =~ /linux/
|
94
|
+
end
|
95
|
+
|
96
|
+
def self.get_os
|
97
|
+
case RbConfig::CONFIG["host_os"]
|
98
|
+
when /linux/
|
99
|
+
"Linux"
|
100
|
+
when /darwin/
|
101
|
+
"macOS"
|
102
|
+
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
|
103
|
+
"Windows"
|
104
|
+
else
|
105
|
+
"Unknown"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def self.get_runtime_identifier
|
110
|
+
os = RbConfig::CONFIG["host_os"]
|
111
|
+
cpu = RbConfig::CONFIG["host_cpu"]
|
112
|
+
|
113
|
+
case os
|
114
|
+
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
|
115
|
+
os_rid = "win"
|
116
|
+
when /darwin|mac os/
|
117
|
+
os_rid = "osx"
|
118
|
+
when /linux/
|
119
|
+
os_rid = "linux"
|
120
|
+
when /solaris|bsd/
|
121
|
+
os_rid = "unix"
|
122
|
+
else
|
123
|
+
raise "Unknown operating system: host_os=#{os}"
|
124
|
+
end
|
125
|
+
|
126
|
+
case cpu
|
127
|
+
when /x86_64|amd64|x64/
|
128
|
+
arch_rid = "x64"
|
129
|
+
when /i686|i386/
|
130
|
+
arch_rid = "x86"
|
131
|
+
# when /arm/
|
132
|
+
# arch_rid = "arm"
|
133
|
+
when /aarch64|arm64/
|
134
|
+
arch_rid = "arm64"
|
135
|
+
else
|
136
|
+
raise "Unknown architecture: host_cpu=#{cpu}"
|
137
|
+
end
|
138
|
+
|
139
|
+
"#{os_rid}-#{arch_rid}"
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|