makit 0.0.143 → 0.0.144

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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +41 -41
  3. data/exe/makit +5 -5
  4. data/lib/makit/apache.rb +28 -28
  5. data/lib/makit/auto.rb +48 -48
  6. data/lib/makit/cli/build_commands.rb +500 -500
  7. data/lib/makit/cli/generators/base_generator.rb +74 -74
  8. data/lib/makit/cli/generators/dotnet_generator.rb +50 -50
  9. data/lib/makit/cli/generators/generator_factory.rb +49 -49
  10. data/lib/makit/cli/generators/node_generator.rb +50 -50
  11. data/lib/makit/cli/generators/ruby_generator.rb +77 -77
  12. data/lib/makit/cli/generators/rust_generator.rb +50 -50
  13. data/lib/makit/cli/generators/templates/dotnet_templates.rb +167 -167
  14. data/lib/makit/cli/generators/templates/node_templates.rb +161 -161
  15. data/lib/makit/cli/generators/templates/ruby/gemfile.rb +26 -26
  16. data/lib/makit/cli/generators/templates/ruby/gemspec.rb +40 -40
  17. data/lib/makit/cli/generators/templates/ruby/main_lib.rb +33 -33
  18. data/lib/makit/cli/generators/templates/ruby/rakefile.rb +35 -35
  19. data/lib/makit/cli/generators/templates/ruby/readme.rb +63 -63
  20. data/lib/makit/cli/generators/templates/ruby/test.rb +39 -39
  21. data/lib/makit/cli/generators/templates/ruby/test_helper.rb +29 -29
  22. data/lib/makit/cli/generators/templates/ruby/version.rb +29 -29
  23. data/lib/makit/cli/generators/templates/rust_templates.rb +128 -128
  24. data/lib/makit/cli/main.rb +69 -69
  25. data/lib/makit/cli/project_commands.rb +868 -868
  26. data/lib/makit/cli/repository_commands.rb +661 -661
  27. data/lib/makit/cli/strategy_commands.rb +212 -212
  28. data/lib/makit/cli/utility_commands.rb +521 -521
  29. data/lib/makit/commands/factory.rb +359 -359
  30. data/lib/makit/commands/middleware/base.rb +73 -73
  31. data/lib/makit/commands/middleware/cache.rb +248 -248
  32. data/lib/makit/commands/middleware/command_logger.rb +312 -312
  33. data/lib/makit/commands/middleware/validator.rb +269 -269
  34. data/lib/makit/commands/request.rb +316 -316
  35. data/lib/makit/commands/result.rb +323 -323
  36. data/lib/makit/commands/runner.rb +386 -386
  37. data/lib/makit/commands/strategies/base.rb +171 -171
  38. data/lib/makit/commands/strategies/child_process.rb +162 -162
  39. data/lib/makit/commands/strategies/factory.rb +136 -136
  40. data/lib/makit/commands/strategies/synchronous.rb +139 -139
  41. data/lib/makit/commands.rb +50 -50
  42. data/lib/makit/configuration/dotnet_project.rb +48 -39
  43. data/lib/makit/configuration/gitlab_helper.rb +58 -58
  44. data/lib/makit/configuration/project.rb +168 -168
  45. data/lib/makit/configuration/rakefile_helper.rb +43 -43
  46. data/lib/makit/configuration/step.rb +34 -34
  47. data/lib/makit/configuration/timeout.rb +74 -74
  48. data/lib/makit/configuration.rb +16 -16
  49. data/lib/makit/content/default_gitignore.rb +7 -7
  50. data/lib/makit/content/default_gitignore.txt +225 -225
  51. data/lib/makit/content/default_rakefile.rb +13 -13
  52. data/lib/makit/content/gem_rakefile.rb +16 -16
  53. data/lib/makit/context.rb +1 -1
  54. data/lib/makit/data.rb +49 -49
  55. data/lib/makit/directories.rb +140 -140
  56. data/lib/makit/directory.rb +262 -262
  57. data/lib/makit/docs/files.rb +89 -89
  58. data/lib/makit/docs/rake.rb +102 -102
  59. data/lib/makit/dotnet/cli.rb +69 -69
  60. data/lib/makit/dotnet/project.rb +217 -217
  61. data/lib/makit/dotnet/solution.rb +38 -38
  62. data/lib/makit/dotnet/solution_classlib.rb +239 -239
  63. data/lib/makit/dotnet/solution_console.rb +264 -264
  64. data/lib/makit/dotnet/solution_maui.rb +354 -354
  65. data/lib/makit/dotnet/solution_wasm.rb +275 -275
  66. data/lib/makit/dotnet/solution_wpf.rb +304 -304
  67. data/lib/makit/dotnet.rb +102 -102
  68. data/lib/makit/email.rb +90 -90
  69. data/lib/makit/environment.rb +142 -142
  70. data/lib/makit/examples/runner.rb +370 -370
  71. data/lib/makit/exceptions.rb +45 -45
  72. data/lib/makit/fileinfo.rb +24 -24
  73. data/lib/makit/files.rb +43 -43
  74. data/lib/makit/gems.rb +40 -40
  75. data/lib/makit/git/cli.rb +54 -54
  76. data/lib/makit/git/repository.rb +90 -90
  77. data/lib/makit/git.rb +98 -98
  78. data/lib/makit/gitlab_runner.rb +59 -59
  79. data/lib/makit/humanize.rb +137 -137
  80. data/lib/makit/indexer.rb +47 -47
  81. data/lib/makit/logging/configuration.rb +308 -308
  82. data/lib/makit/logging/format_registry.rb +84 -84
  83. data/lib/makit/logging/formatters/base.rb +39 -39
  84. data/lib/makit/logging/formatters/console_formatter.rb +140 -140
  85. data/lib/makit/logging/formatters/json_formatter.rb +65 -65
  86. data/lib/makit/logging/formatters/plain_text_formatter.rb +71 -71
  87. data/lib/makit/logging/formatters/text_formatter.rb +64 -64
  88. data/lib/makit/logging/log_request.rb +119 -119
  89. data/lib/makit/logging/logger.rb +199 -199
  90. data/lib/makit/logging/sinks/base.rb +91 -91
  91. data/lib/makit/logging/sinks/console.rb +72 -72
  92. data/lib/makit/logging/sinks/file_sink.rb +92 -92
  93. data/lib/makit/logging/sinks/structured.rb +123 -123
  94. data/lib/makit/logging/sinks/unified_file_sink.rb +296 -296
  95. data/lib/makit/logging.rb +565 -565
  96. data/lib/makit/markdown.rb +75 -75
  97. data/lib/makit/mp/basic_object_mp.rb +17 -17
  98. data/lib/makit/mp/command_mp.rb +13 -13
  99. data/lib/makit/mp/command_request.mp.rb +17 -17
  100. data/lib/makit/mp/project_mp.rb +199 -199
  101. data/lib/makit/mp/string_mp.rb +199 -199
  102. data/lib/makit/nuget.rb +74 -74
  103. data/lib/makit/port.rb +32 -32
  104. data/lib/makit/process.rb +377 -163
  105. data/lib/makit/protoc.rb +107 -107
  106. data/lib/makit/rake/cli.rb +196 -196
  107. data/lib/makit/rake/trace_controller.rb +174 -174
  108. data/lib/makit/rake.rb +81 -81
  109. data/lib/makit/ruby/cli.rb +185 -185
  110. data/lib/makit/ruby.rb +25 -25
  111. data/lib/makit/secrets.rb +51 -51
  112. data/lib/makit/serializer.rb +130 -130
  113. data/lib/makit/services/builder.rb +186 -186
  114. data/lib/makit/services/error_handler.rb +226 -226
  115. data/lib/makit/services/repository_manager.rb +231 -231
  116. data/lib/makit/services/validator.rb +112 -112
  117. data/lib/makit/setup/classlib.rb +101 -101
  118. data/lib/makit/setup/gem.rb +268 -268
  119. data/lib/makit/setup/pages.rb +11 -11
  120. data/lib/makit/setup/razorclasslib.rb +101 -101
  121. data/lib/makit/setup/runner.rb +54 -54
  122. data/lib/makit/setup.rb +5 -5
  123. data/lib/makit/show.rb +110 -110
  124. data/lib/makit/storage.rb +126 -126
  125. data/lib/makit/symbols.rb +170 -170
  126. data/lib/makit/task_info.rb +130 -130
  127. data/lib/makit/tasks/at_exit.rb +15 -15
  128. data/lib/makit/tasks/build.rb +22 -22
  129. data/lib/makit/tasks/clean.rb +13 -13
  130. data/lib/makit/tasks/configure.rb +10 -10
  131. data/lib/makit/tasks/format.rb +10 -10
  132. data/lib/makit/tasks/hook_manager.rb +443 -443
  133. data/lib/makit/tasks/init.rb +49 -49
  134. data/lib/makit/tasks/integrate.rb +29 -29
  135. data/lib/makit/tasks/pull_incoming.rb +13 -13
  136. data/lib/makit/tasks/setup.rb +16 -16
  137. data/lib/makit/tasks/sync.rb +17 -17
  138. data/lib/makit/tasks/tag.rb +16 -16
  139. data/lib/makit/tasks/task_monkey_patch.rb +81 -81
  140. data/lib/makit/tasks/test.rb +22 -22
  141. data/lib/makit/tasks/update.rb +18 -18
  142. data/lib/makit/tasks.rb +20 -20
  143. data/lib/makit/test_cache.rb +239 -239
  144. data/lib/makit/tree.rb +37 -37
  145. data/lib/makit/v1/makit.v1_pb.rb +35 -35
  146. data/lib/makit/v1/makit.v1_services_pb.rb +27 -27
  147. data/lib/makit/version.rb +100 -100
  148. data/lib/makit/version_util.rb +21 -21
  149. data/lib/makit/wix.rb +95 -95
  150. data/lib/makit/yaml.rb +29 -29
  151. data/lib/makit/zip.rb +17 -17
  152. data/lib/makit copy.rb +44 -44
  153. data/lib/makit.rb +43 -43
  154. metadata +2 -2
@@ -1,199 +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(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
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