makit 0.0.140 → 0.0.142
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 -41
- data/exe/makit +5 -5
- data/lib/makit/apache.rb +28 -28
- data/lib/makit/auto.rb +48 -48
- data/lib/makit/cli/build_commands.rb +500 -500
- data/lib/makit/cli/generators/base_generator.rb +74 -74
- data/lib/makit/cli/generators/dotnet_generator.rb +50 -50
- data/lib/makit/cli/generators/generator_factory.rb +49 -49
- data/lib/makit/cli/generators/node_generator.rb +50 -50
- data/lib/makit/cli/generators/ruby_generator.rb +77 -77
- data/lib/makit/cli/generators/rust_generator.rb +50 -50
- data/lib/makit/cli/generators/templates/dotnet_templates.rb +167 -167
- data/lib/makit/cli/generators/templates/node_templates.rb +161 -161
- data/lib/makit/cli/generators/templates/ruby/gemfile.rb +26 -26
- data/lib/makit/cli/generators/templates/ruby/gemspec.rb +40 -40
- data/lib/makit/cli/generators/templates/ruby/main_lib.rb +33 -33
- data/lib/makit/cli/generators/templates/ruby/rakefile.rb +35 -35
- data/lib/makit/cli/generators/templates/ruby/readme.rb +63 -63
- data/lib/makit/cli/generators/templates/ruby/test.rb +39 -39
- data/lib/makit/cli/generators/templates/ruby/test_helper.rb +29 -29
- data/lib/makit/cli/generators/templates/ruby/version.rb +29 -29
- data/lib/makit/cli/generators/templates/rust_templates.rb +128 -128
- data/lib/makit/cli/main.rb +69 -69
- data/lib/makit/cli/project_commands.rb +868 -868
- data/lib/makit/cli/repository_commands.rb +661 -661
- data/lib/makit/cli/strategy_commands.rb +203 -203
- data/lib/makit/cli/utility_commands.rb +521 -521
- data/lib/makit/commands/factory.rb +359 -359
- data/lib/makit/commands/middleware/base.rb +73 -73
- data/lib/makit/commands/middleware/cache.rb +248 -248
- data/lib/makit/commands/middleware/command_logger.rb +312 -312
- data/lib/makit/commands/middleware/validator.rb +269 -269
- data/lib/makit/commands/request.rb +316 -316
- data/lib/makit/commands/result.rb +323 -323
- data/lib/makit/commands/runner.rb +388 -385
- data/lib/makit/commands/strategies/base.rb +171 -171
- data/lib/makit/commands/strategies/child_process.rb +165 -165
- data/lib/makit/commands/strategies/factory.rb +136 -136
- data/lib/makit/commands/strategies/synchronous.rb +139 -139
- data/lib/makit/commands.rb +50 -50
- data/lib/makit/configuration/dotnet_project.rb +12 -12
- data/lib/makit/configuration/gitlab_helper.rb +58 -58
- data/lib/makit/configuration/project.rb +168 -168
- data/lib/makit/configuration/rakefile_helper.rb +43 -43
- data/lib/makit/configuration/step.rb +34 -34
- data/lib/makit/configuration/timeout.rb +74 -74
- data/lib/makit/configuration.rb +15 -15
- data/lib/makit/content/default_gitignore.rb +7 -7
- data/lib/makit/content/default_gitignore.txt +225 -225
- data/lib/makit/content/default_rakefile.rb +13 -13
- data/lib/makit/content/gem_rakefile.rb +16 -16
- data/lib/makit/context.rb +1 -1
- data/lib/makit/data.rb +49 -49
- data/lib/makit/directories.rb +140 -140
- data/lib/makit/directory.rb +262 -262
- data/lib/makit/docs/files.rb +89 -89
- data/lib/makit/docs/rake.rb +102 -102
- data/lib/makit/dotnet/cli.rb +69 -69
- data/lib/makit/dotnet/project.rb +217 -217
- data/lib/makit/dotnet/solution.rb +38 -38
- data/lib/makit/dotnet/solution_classlib.rb +239 -239
- data/lib/makit/dotnet/solution_console.rb +264 -264
- data/lib/makit/dotnet/solution_maui.rb +354 -354
- data/lib/makit/dotnet/solution_wasm.rb +275 -275
- data/lib/makit/dotnet/solution_wpf.rb +304 -304
- data/lib/makit/dotnet.rb +102 -102
- data/lib/makit/email.rb +90 -90
- data/lib/makit/environment.rb +142 -142
- data/lib/makit/examples/runner.rb +370 -370
- data/lib/makit/exceptions.rb +45 -45
- data/lib/makit/fileinfo.rb +24 -24
- data/lib/makit/files.rb +43 -43
- data/lib/makit/gems.rb +40 -40
- data/lib/makit/git/cli.rb +54 -54
- data/lib/makit/git/repository.rb +90 -90
- data/lib/makit/git.rb +98 -98
- data/lib/makit/gitlab_runner.rb +59 -59
- data/lib/makit/humanize.rb +137 -137
- data/lib/makit/indexer.rb +47 -47
- data/lib/makit/logging/configuration.rb +308 -308
- data/lib/makit/logging/format_registry.rb +84 -84
- data/lib/makit/logging/formatters/base.rb +39 -39
- data/lib/makit/logging/formatters/console_formatter.rb +140 -140
- data/lib/makit/logging/formatters/json_formatter.rb +65 -65
- data/lib/makit/logging/formatters/plain_text_formatter.rb +71 -71
- data/lib/makit/logging/formatters/text_formatter.rb +64 -64
- data/lib/makit/logging/log_request.rb +119 -119
- data/lib/makit/logging/logger.rb +199 -199
- data/lib/makit/logging/sinks/base.rb +91 -91
- data/lib/makit/logging/sinks/console.rb +72 -72
- data/lib/makit/logging/sinks/file_sink.rb +92 -92
- data/lib/makit/logging/sinks/structured.rb +123 -123
- data/lib/makit/logging/sinks/unified_file_sink.rb +296 -296
- data/lib/makit/logging.rb +565 -565
- data/lib/makit/markdown.rb +75 -75
- data/lib/makit/mp/basic_object_mp.rb +17 -17
- data/lib/makit/mp/command_mp.rb +13 -13
- data/lib/makit/mp/command_request.mp.rb +17 -17
- data/lib/makit/mp/project_mp.rb +199 -199
- data/lib/makit/mp/string_mp.rb +199 -191
- data/lib/makit/nuget.rb +74 -74
- data/lib/makit/port.rb +32 -32
- data/lib/makit/process.rb +163 -163
- data/lib/makit/protoc.rb +107 -107
- data/lib/makit/rake/cli.rb +196 -196
- data/lib/makit/rake/trace_controller.rb +173 -173
- data/lib/makit/rake.rb +80 -80
- data/lib/makit/ruby/cli.rb +185 -185
- data/lib/makit/ruby.rb +25 -25
- data/lib/makit/secrets.rb +51 -51
- data/lib/makit/serializer.rb +130 -130
- data/lib/makit/services/builder.rb +186 -186
- data/lib/makit/services/error_handler.rb +226 -226
- data/lib/makit/services/repository_manager.rb +231 -231
- data/lib/makit/services/validator.rb +112 -112
- data/lib/makit/setup/classlib.rb +101 -101
- data/lib/makit/setup/gem.rb +268 -268
- data/lib/makit/setup/razorclasslib.rb +101 -101
- data/lib/makit/setup/runner.rb +54 -54
- data/lib/makit/setup.rb +5 -5
- data/lib/makit/show.rb +110 -110
- data/lib/makit/storage.rb +126 -126
- data/lib/makit/symbols.rb +170 -170
- data/lib/makit/task_info.rb +130 -130
- data/lib/makit/tasks/at_exit.rb +15 -15
- data/lib/makit/tasks/build.rb +22 -22
- data/lib/makit/tasks/clean.rb +13 -13
- data/lib/makit/tasks/configure.rb +10 -10
- data/lib/makit/tasks/format.rb +10 -10
- data/lib/makit/tasks/hook_manager.rb +443 -443
- data/lib/makit/tasks/init.rb +49 -49
- data/lib/makit/tasks/integrate.rb +29 -29
- data/lib/makit/tasks/pull_incoming.rb +13 -13
- data/lib/makit/tasks/setup.rb +13 -13
- data/lib/makit/tasks/sync.rb +17 -17
- data/lib/makit/tasks/tag.rb +16 -16
- data/lib/makit/tasks/task_monkey_patch.rb +81 -81
- data/lib/makit/tasks/test.rb +22 -22
- data/lib/makit/tasks/update.rb +18 -18
- data/lib/makit/tasks.rb +20 -20
- data/lib/makit/test_cache.rb +239 -239
- data/lib/makit/tree.rb +37 -37
- data/lib/makit/v1/makit.v1_pb.rb +35 -35
- data/lib/makit/v1/makit.v1_services_pb.rb +27 -27
- data/lib/makit/version.rb +99 -99
- data/lib/makit/version_util.rb +21 -21
- data/lib/makit/wix.rb +95 -95
- data/lib/makit/yaml.rb +29 -29
- data/lib/makit/zip.rb +17 -17
- data/lib/makit copy.rb +44 -44
- data/lib/makit.rb +43 -42
- metadata +2 -2
data/lib/makit/mp/string_mp.rb
CHANGED
@@ -1,191 +1,199 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "json"
|
4
|
-
require "fileutils"
|
5
|
-
# monkey patch String class with command execution methods
|
6
|
-
|
7
|
-
class String
|
8
|
-
def run(args = nil)
|
9
|
-
command = self
|
10
|
-
if args.nil?
|
11
|
-
request = Makit::Commands::Request.from_string(command)
|
12
|
-
else
|
13
|
-
# Parse initial request
|
14
|
-
base_request = Makit::Commands::Request.from_string(command)
|
15
|
-
|
16
|
-
if args.is_a?(Hash)
|
17
|
-
# Create new request with combined options
|
18
|
-
request_options = {
|
19
|
-
command: base_request.command,
|
20
|
-
arguments: base_request.arguments || [],
|
21
|
-
directory: base_request.directory,
|
22
|
-
timeout: base_request.timeout,
|
23
|
-
environment: base_request.environment || {},
|
24
|
-
metadata: base_request.metadata || {},
|
25
|
-
}
|
26
|
-
|
27
|
-
# Apply args to the request options
|
28
|
-
args.each do |key, value|
|
29
|
-
case key.to_s
|
30
|
-
when "arguments"
|
31
|
-
# Append additional arguments
|
32
|
-
request_options[:arguments] = (request_options[:arguments] + Array(value)).flatten
|
33
|
-
when "directory"
|
34
|
-
request_options[:directory] = value
|
35
|
-
when "timeout"
|
36
|
-
request_options[:timeout] = value
|
37
|
-
when "environment"
|
38
|
-
request_options[:environment] = (request_options[:environment] || {}).merge(value)
|
39
|
-
when "metadata"
|
40
|
-
request_options[:metadata] = (request_options[:metadata] || {}).merge(value)
|
41
|
-
else
|
42
|
-
# Add unknown keys to metadata
|
43
|
-
request_options[:metadata] = (request_options[:metadata] || {}).merge(key.to_s => value)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
# Create new request with combined options
|
48
|
-
request = Makit::Commands::Request.new(**request_options)
|
49
|
-
else
|
50
|
-
# args is an array of additional arguments
|
51
|
-
request = Makit::Commands::Request.new(
|
52
|
-
command: base_request.command,
|
53
|
-
arguments: (base_request.arguments || []) + Array(args),
|
54
|
-
directory: base_request.directory,
|
55
|
-
timeout: base_request.timeout,
|
56
|
-
environment: base_request.environment || {},
|
57
|
-
metadata: base_request.metadata || {},
|
58
|
-
)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
Makit::Commands::Runner.default.execute(request)
|
62
|
-
end
|
63
|
-
|
64
|
-
def cache_run(timestamp = nil)
|
65
|
-
#puts "cache_run: #{self}"
|
66
|
-
command = self
|
67
|
-
request = Makit::Commands::Request.from_string(command)
|
68
|
-
if timestamp
|
69
|
-
# Add timestamp to metadata for cache key generation
|
70
|
-
request = Makit::Commands::Request.new(
|
71
|
-
command: request.command,
|
72
|
-
arguments: request.arguments,
|
73
|
-
directory: request.directory,
|
74
|
-
timeout: request.timeout,
|
75
|
-
environment: request.environment || {},
|
76
|
-
metadata: (request.metadata || {}).merge(timestamp: timestamp),
|
77
|
-
)
|
78
|
-
#puts "timestamp: #{timestamp}"
|
79
|
-
else
|
80
|
-
#puts "no timestamp"
|
81
|
-
end
|
82
|
-
Makit::Commands::Runner.default.execute(request)
|
83
|
-
end
|
84
|
-
|
85
|
-
def try
|
86
|
-
command = self
|
87
|
-
request = Makit::Commands::Request.from_string(command).exit_on_failure(false)
|
88
|
-
Makit::Commands::Runner.default.execute(request)
|
89
|
-
end
|
90
|
-
|
91
|
-
def show
|
92
|
-
command = self
|
93
|
-
request = Makit::Commands::Request.from_string(command)
|
94
|
-
Makit::Commands::Runner.default.execute(request)
|
95
|
-
end
|
96
|
-
|
97
|
-
def log
|
98
|
-
command = self
|
99
|
-
request = Makit::Commands::Request.from_string(command)
|
100
|
-
result = Makit::Commands::Runner.default.execute(request)
|
101
|
-
|
102
|
-
#
|
103
|
-
if
|
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
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
)
|
162
|
-
Makit::Commands::
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
)
|
176
|
-
Makit::Commands::
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
require "fileutils"
|
5
|
+
# monkey patch String class with command execution methods
|
6
|
+
|
7
|
+
class String
|
8
|
+
def run(args = nil)
|
9
|
+
command = self
|
10
|
+
if args.nil?
|
11
|
+
request = Makit::Commands::Request.from_string(command)
|
12
|
+
else
|
13
|
+
# Parse initial request
|
14
|
+
base_request = Makit::Commands::Request.from_string(command)
|
15
|
+
|
16
|
+
if args.is_a?(Hash)
|
17
|
+
# Create new request with combined options
|
18
|
+
request_options = {
|
19
|
+
command: base_request.command,
|
20
|
+
arguments: base_request.arguments || [],
|
21
|
+
directory: base_request.directory,
|
22
|
+
timeout: base_request.timeout,
|
23
|
+
environment: base_request.environment || {},
|
24
|
+
metadata: base_request.metadata || {},
|
25
|
+
}
|
26
|
+
|
27
|
+
# Apply args to the request options
|
28
|
+
args.each do |key, value|
|
29
|
+
case key.to_s
|
30
|
+
when "arguments"
|
31
|
+
# Append additional arguments
|
32
|
+
request_options[:arguments] = (request_options[:arguments] + Array(value)).flatten
|
33
|
+
when "directory"
|
34
|
+
request_options[:directory] = value
|
35
|
+
when "timeout"
|
36
|
+
request_options[:timeout] = value
|
37
|
+
when "environment"
|
38
|
+
request_options[:environment] = (request_options[:environment] || {}).merge(value)
|
39
|
+
when "metadata"
|
40
|
+
request_options[:metadata] = (request_options[:metadata] || {}).merge(value)
|
41
|
+
else
|
42
|
+
# Add unknown keys to metadata
|
43
|
+
request_options[:metadata] = (request_options[:metadata] || {}).merge(key.to_s => value)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Create new request with combined options
|
48
|
+
request = Makit::Commands::Request.new(**request_options)
|
49
|
+
else
|
50
|
+
# args is an array of additional arguments
|
51
|
+
request = Makit::Commands::Request.new(
|
52
|
+
command: base_request.command,
|
53
|
+
arguments: (base_request.arguments || []) + Array(args),
|
54
|
+
directory: base_request.directory,
|
55
|
+
timeout: base_request.timeout,
|
56
|
+
environment: base_request.environment || {},
|
57
|
+
metadata: base_request.metadata || {},
|
58
|
+
)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
Makit::Commands::Runner.default.execute(request)
|
62
|
+
end
|
63
|
+
|
64
|
+
def cache_run(timestamp = nil)
|
65
|
+
#puts "cache_run: #{self}"
|
66
|
+
command = self
|
67
|
+
request = Makit::Commands::Request.from_string(command)
|
68
|
+
if timestamp
|
69
|
+
# Add timestamp to metadata for cache key generation
|
70
|
+
request = Makit::Commands::Request.new(
|
71
|
+
command: request.command,
|
72
|
+
arguments: request.arguments,
|
73
|
+
directory: request.directory,
|
74
|
+
timeout: request.timeout,
|
75
|
+
environment: request.environment || {},
|
76
|
+
metadata: (request.metadata || {}).merge(timestamp: timestamp),
|
77
|
+
)
|
78
|
+
#puts "timestamp: #{timestamp}"
|
79
|
+
else
|
80
|
+
#puts "no timestamp"
|
81
|
+
end
|
82
|
+
Makit::Commands::Runner.default.execute(request)
|
83
|
+
end
|
84
|
+
|
85
|
+
def try
|
86
|
+
command = self
|
87
|
+
request = Makit::Commands::Request.from_string(command).exit_on_failure(false)
|
88
|
+
Makit::Commands::Runner.default.execute(request)
|
89
|
+
end
|
90
|
+
|
91
|
+
def show
|
92
|
+
command = self
|
93
|
+
request = Makit::Commands::Request.from_string(command)
|
94
|
+
Makit::Commands::Runner.default.execute(request)
|
95
|
+
end
|
96
|
+
|
97
|
+
def log(log_file = nil)
|
98
|
+
command = self
|
99
|
+
request = Makit::Commands::Request.from_string(command)
|
100
|
+
result = Makit::Commands::Runner.default.execute(request)
|
101
|
+
|
102
|
+
# If a log file is provided, write outputs to the file (maintains backward compatibility)
|
103
|
+
if log_file
|
104
|
+
FileUtils.mkdir_p(File.dirname(log_file))
|
105
|
+
File.write(log_file, "") unless File.exist?(log_file)
|
106
|
+
File.write(log_file, result.stdout, mode: "w") if result.stdout && !result.stdout.empty?
|
107
|
+
File.write(log_file, result.stderr, mode: "a") if result.stderr && !result.stderr.empty?
|
108
|
+
else
|
109
|
+
# Otherwise, log to the Makit logger
|
110
|
+
if result.success?
|
111
|
+
Makit::Logging.info("Command completed successfully: #{command}")
|
112
|
+
else
|
113
|
+
Makit::Logging.error("Command failed: #{command} (exit code: #{result.exit_code})")
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
result
|
118
|
+
end
|
119
|
+
|
120
|
+
def cache_try(timestamp = nil)
|
121
|
+
command = self
|
122
|
+
request = Makit::Commands::Request.from_string(command)
|
123
|
+
if timestamp
|
124
|
+
# Add timestamp to metadata for cache key generation
|
125
|
+
request = Makit::Commands::Request.new(
|
126
|
+
command: request.command,
|
127
|
+
arguments: request.arguments,
|
128
|
+
directory: request.directory,
|
129
|
+
timeout: request.timeout,
|
130
|
+
environment: request.environment || {},
|
131
|
+
metadata: (request.metadata || {}).merge(timestamp: timestamp),
|
132
|
+
)
|
133
|
+
end
|
134
|
+
Makit::Commands::Runner.default.execute(request)
|
135
|
+
end
|
136
|
+
|
137
|
+
def show_command(cmd)
|
138
|
+
if cmd.success?
|
139
|
+
puts "✅ #{cmd.command} #{cmd.arguments&.join(" ")}".colorize(:green)
|
140
|
+
else
|
141
|
+
puts "❌ #{cmd.command} #{cmd.arguments&.join(" ")}".colorize(:red)
|
142
|
+
puts " Exit code: #{cmd.exit_code}".colorize(:red)
|
143
|
+
puts " Error: #{cmd.stderr}".colorize(:red) if cmd.stderr && !cmd.stderr.empty?
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def to_markdown
|
148
|
+
command = self
|
149
|
+
request = Makit::Commands::Request.from_string(command)
|
150
|
+
result = Makit::Commands::Runner.default.execute(request)
|
151
|
+
|
152
|
+
if result.success?
|
153
|
+
"```\n#{result.stdout}\n```"
|
154
|
+
else
|
155
|
+
"```\nError: #{result.stderr}\n```"
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def cache_run_with_timestamp(timestamp)
|
160
|
+
command = self
|
161
|
+
request = Makit::Commands::Request.from_string(command)
|
162
|
+
request = Makit::Commands::Request.new(
|
163
|
+
command: request.command,
|
164
|
+
arguments: request.arguments,
|
165
|
+
directory: request.directory,
|
166
|
+
timeout: request.timeout,
|
167
|
+
environment: request.environment || {},
|
168
|
+
metadata: (request.metadata || {}).merge(timestamp: timestamp),
|
169
|
+
)
|
170
|
+
Makit::Commands::Runner.default.execute(request)
|
171
|
+
end
|
172
|
+
|
173
|
+
def cache_try_with_timestamp(timestamp)
|
174
|
+
command = self
|
175
|
+
request = Makit::Commands::Request.from_string(command)
|
176
|
+
request = Makit::Commands::Request.new(
|
177
|
+
command: request.command,
|
178
|
+
arguments: request.arguments,
|
179
|
+
directory: request.directory,
|
180
|
+
timeout: request.timeout,
|
181
|
+
environment: request.environment || {},
|
182
|
+
metadata: (request.metadata || {}).merge(timestamp: timestamp),
|
183
|
+
)
|
184
|
+
Makit::Commands::Runner.default.execute(request)
|
185
|
+
end
|
186
|
+
|
187
|
+
def cache_log(log_file)
|
188
|
+
command = self
|
189
|
+
request = Makit::Commands::Request.from_string(command)
|
190
|
+
result = Makit::Commands::Runner.default.execute(request)
|
191
|
+
|
192
|
+
# Write output to log file
|
193
|
+
FileUtils.mkdir_p(File.dirname(log_file))
|
194
|
+
File.write(log_file, result.stdout) if result.stdout && !result.stdout.empty?
|
195
|
+
File.write(log_file, result.stderr, mode: "a") if result.stderr && !result.stderr.empty?
|
196
|
+
|
197
|
+
result
|
198
|
+
end
|
199
|
+
end
|
data/lib/makit/nuget.rb
CHANGED
@@ -1,74 +1,74 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "tmpdir"
|
4
|
-
# This module provides classes for the Makit gem.
|
5
|
-
module Makit
|
6
|
-
# This class provide methods for working with the Nuget package cache
|
7
|
-
#
|
8
|
-
# Example:
|
9
|
-
#
|
10
|
-
# Makit::Directory.cache("Google.Protobuf", "3.27.2")
|
11
|
-
#
|
12
|
-
# dotnet nuget locals all --list
|
13
|
-
# dotnet nuget locals all --clear
|
14
|
-
#
|
15
|
-
class NuGet
|
16
|
-
def self.get_cache_dir(package, version)
|
17
|
-
File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package, version)
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.cache(package, version)
|
21
|
-
# if the package is already cached, there is nothing to do
|
22
|
-
return if Dir.exist?(get_cache_dir(package, version))
|
23
|
-
|
24
|
-
Dir.mktmpdir do |dir|
|
25
|
-
# Use the temp directory here
|
26
|
-
Dir.chdir(dir) do
|
27
|
-
system("dotnet new classlib -n ClassLib")
|
28
|
-
Dir.chdir("ClassLib") do
|
29
|
-
# display a list of directories in the current directory
|
30
|
-
puts Dir.entries(Dir.pwd)
|
31
|
-
# display a list of files in the current directory
|
32
|
-
puts Dir.entries(Dir.pwd)
|
33
|
-
puts "dotnet add ClassLib.csproj package #{package} --version #{version}"
|
34
|
-
system("dotnet add ClassLib.csproj package #{package} --version #{version}")
|
35
|
-
end
|
36
|
-
end
|
37
|
-
# The directory and its contents will be removed automatically after the block
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.clear_cache(package, version)
|
42
|
-
return unless Dir.exist?(get_cache_dir(package, version))
|
43
|
-
|
44
|
-
FileUtils.rm_rf(get_cache_dir(package, version))
|
45
|
-
end
|
46
|
-
|
47
|
-
# get the latest version of the package
|
48
|
-
def self.get_latest_version(package)
|
49
|
-
dir = File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package)
|
50
|
-
if Dir.exist?(dir)
|
51
|
-
versions = Dir.entries(dir).select do |entry|
|
52
|
-
File.directory?(File.join(dir, entry)) && ![".", ".."].include?(entry)
|
53
|
-
end
|
54
|
-
highest_version = Makit::Version.get_highest_version(versions)
|
55
|
-
return highest_version
|
56
|
-
end
|
57
|
-
nil
|
58
|
-
end
|
59
|
-
|
60
|
-
# publish a package to a nuget directory feed
|
61
|
-
def self.add_package(_package, path)
|
62
|
-
system("dotnet nuget push #{path} --source #{path}")
|
63
|
-
end
|
64
|
-
|
65
|
-
def self.publish_to_directory(nuget_package_path, directory, package_name, version)
|
66
|
-
target_package_path = "#{directory}/#{package_name}/#{version}/#{package_name}.#{version}.nupkg".downcase
|
67
|
-
if File.exist?(target_package_path)
|
68
|
-
puts " #{target_package_path} already exists".colorize(:grey)
|
69
|
-
else
|
70
|
-
"dotnet nuget push #{nuget_package_path} --source #{directory}".run
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "tmpdir"
|
4
|
+
# This module provides classes for the Makit gem.
|
5
|
+
module Makit
|
6
|
+
# This class provide methods for working with the Nuget package cache
|
7
|
+
#
|
8
|
+
# Example:
|
9
|
+
#
|
10
|
+
# Makit::Directory.cache("Google.Protobuf", "3.27.2")
|
11
|
+
#
|
12
|
+
# dotnet nuget locals all --list
|
13
|
+
# dotnet nuget locals all --clear
|
14
|
+
#
|
15
|
+
class NuGet
|
16
|
+
def self.get_cache_dir(package, version)
|
17
|
+
File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package, version)
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.cache(package, version)
|
21
|
+
# if the package is already cached, there is nothing to do
|
22
|
+
return if Dir.exist?(get_cache_dir(package, version))
|
23
|
+
|
24
|
+
Dir.mktmpdir do |dir|
|
25
|
+
# Use the temp directory here
|
26
|
+
Dir.chdir(dir) do
|
27
|
+
system("dotnet new classlib -n ClassLib")
|
28
|
+
Dir.chdir("ClassLib") do
|
29
|
+
# display a list of directories in the current directory
|
30
|
+
puts Dir.entries(Dir.pwd)
|
31
|
+
# display a list of files in the current directory
|
32
|
+
puts Dir.entries(Dir.pwd)
|
33
|
+
puts "dotnet add ClassLib.csproj package #{package} --version #{version}"
|
34
|
+
system("dotnet add ClassLib.csproj package #{package} --version #{version}")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
# The directory and its contents will be removed automatically after the block
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.clear_cache(package, version)
|
42
|
+
return unless Dir.exist?(get_cache_dir(package, version))
|
43
|
+
|
44
|
+
FileUtils.rm_rf(get_cache_dir(package, version))
|
45
|
+
end
|
46
|
+
|
47
|
+
# get the latest version of the package
|
48
|
+
def self.get_latest_version(package)
|
49
|
+
dir = File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package)
|
50
|
+
if Dir.exist?(dir)
|
51
|
+
versions = Dir.entries(dir).select do |entry|
|
52
|
+
File.directory?(File.join(dir, entry)) && ![".", ".."].include?(entry)
|
53
|
+
end
|
54
|
+
highest_version = Makit::Version.get_highest_version(versions)
|
55
|
+
return highest_version
|
56
|
+
end
|
57
|
+
nil
|
58
|
+
end
|
59
|
+
|
60
|
+
# publish a package to a nuget directory feed
|
61
|
+
def self.add_package(_package, path)
|
62
|
+
system("dotnet nuget push #{path} --source #{path}")
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.publish_to_directory(nuget_package_path, directory, package_name, version)
|
66
|
+
target_package_path = "#{directory}/#{package_name}/#{version}/#{package_name}.#{version}.nupkg".downcase
|
67
|
+
if File.exist?(target_package_path)
|
68
|
+
puts " #{target_package_path} already exists".colorize(:grey)
|
69
|
+
else
|
70
|
+
"dotnet nuget push #{nuget_package_path} --source #{directory}".run
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
data/lib/makit/port.rb
CHANGED
@@ -1,32 +1,32 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# This module provides classes for the Makit gem.
|
4
|
-
module Makit
|
5
|
-
# This class provide methods for working with ports
|
6
|
-
#
|
7
|
-
class Port
|
8
|
-
def self.is_port_available?(port)
|
9
|
-
socket = Socket.new(:INET, :STREAM)
|
10
|
-
socket.bind(Socket.sockaddr_in(port, ""))
|
11
|
-
socket.close
|
12
|
-
true # Port is available for use
|
13
|
-
rescue Errno::EADDRINUSE, Errno::EACCES
|
14
|
-
false # Port is not available for use
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.get_available_port(start_port = 1024, end_port = 65_535)
|
18
|
-
(start_port..end_port).each do |port|
|
19
|
-
return port if is_port_available?(port)
|
20
|
-
end
|
21
|
-
nil # No available port found in the range
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.get_random_port
|
25
|
-
rand(1024..65_535)
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.get_random_available_port
|
29
|
-
get_available_port(get_random_port)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This module provides classes for the Makit gem.
|
4
|
+
module Makit
|
5
|
+
# This class provide methods for working with ports
|
6
|
+
#
|
7
|
+
class Port
|
8
|
+
def self.is_port_available?(port)
|
9
|
+
socket = Socket.new(:INET, :STREAM)
|
10
|
+
socket.bind(Socket.sockaddr_in(port, ""))
|
11
|
+
socket.close
|
12
|
+
true # Port is available for use
|
13
|
+
rescue Errno::EADDRINUSE, Errno::EACCES
|
14
|
+
false # Port is not available for use
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.get_available_port(start_port = 1024, end_port = 65_535)
|
18
|
+
(start_port..end_port).each do |port|
|
19
|
+
return port if is_port_available?(port)
|
20
|
+
end
|
21
|
+
nil # No available port found in the range
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.get_random_port
|
25
|
+
rand(1024..65_535)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.get_random_available_port
|
29
|
+
get_available_port(get_random_port)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|