makit 0.0.144 → 0.0.145

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 (165) 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/base.rb +17 -0
  7. data/lib/makit/cli/build_commands.rb +500 -500
  8. data/lib/makit/cli/generators/base_generator.rb +74 -74
  9. data/lib/makit/cli/generators/dotnet_generator.rb +50 -50
  10. data/lib/makit/cli/generators/generator_factory.rb +49 -49
  11. data/lib/makit/cli/generators/node_generator.rb +50 -50
  12. data/lib/makit/cli/generators/ruby_generator.rb +77 -77
  13. data/lib/makit/cli/generators/rust_generator.rb +50 -50
  14. data/lib/makit/cli/generators/templates/dotnet_templates.rb +167 -167
  15. data/lib/makit/cli/generators/templates/node_templates.rb +161 -161
  16. data/lib/makit/cli/generators/templates/ruby/gemfile.rb +26 -26
  17. data/lib/makit/cli/generators/templates/ruby/gemspec.rb +41 -40
  18. data/lib/makit/cli/generators/templates/ruby/main_lib.rb +33 -33
  19. data/lib/makit/cli/generators/templates/ruby/rakefile.rb +35 -35
  20. data/lib/makit/cli/generators/templates/ruby/readme.rb +63 -63
  21. data/lib/makit/cli/generators/templates/ruby/test.rb +39 -39
  22. data/lib/makit/cli/generators/templates/ruby/test_helper.rb +29 -29
  23. data/lib/makit/cli/generators/templates/ruby/version.rb +29 -29
  24. data/lib/makit/cli/generators/templates/rust_templates.rb +128 -128
  25. data/lib/makit/cli/main.rb +78 -69
  26. data/lib/makit/cli/pipeline_commands.rb +311 -0
  27. data/lib/makit/cli/project_commands.rb +868 -868
  28. data/lib/makit/cli/repository_commands.rb +661 -661
  29. data/lib/makit/cli/strategy_commands.rb +207 -212
  30. data/lib/makit/cli/utility_commands.rb +521 -521
  31. data/lib/makit/commands/factory.rb +359 -359
  32. data/lib/makit/commands/middleware/base.rb +73 -73
  33. data/lib/makit/commands/middleware/cache.rb +248 -248
  34. data/lib/makit/commands/middleware/command_logger.rb +312 -312
  35. data/lib/makit/commands/middleware/validator.rb +269 -269
  36. data/lib/makit/commands/request.rb +316 -316
  37. data/lib/makit/commands/result.rb +323 -323
  38. data/lib/makit/commands/runner.rb +386 -386
  39. data/lib/makit/commands/strategies/base.rb +171 -171
  40. data/lib/makit/commands/strategies/child_process.rb +162 -162
  41. data/lib/makit/commands/strategies/factory.rb +136 -136
  42. data/lib/makit/commands/strategies/synchronous.rb +139 -139
  43. data/lib/makit/commands.rb +50 -50
  44. data/lib/makit/configuration/dotnet_project.rb +48 -48
  45. data/lib/makit/configuration/gitlab_helper.rb +61 -58
  46. data/lib/makit/configuration/project.rb +446 -168
  47. data/lib/makit/configuration/rakefile_helper.rb +43 -43
  48. data/lib/makit/configuration/step.rb +34 -34
  49. data/lib/makit/configuration/timeout.rb +74 -74
  50. data/lib/makit/configuration.rb +21 -16
  51. data/lib/makit/content/default_gitignore.rb +7 -7
  52. data/lib/makit/content/default_gitignore.txt +225 -225
  53. data/lib/makit/content/default_rakefile.rb +13 -13
  54. data/lib/makit/content/gem_rakefile.rb +16 -16
  55. data/lib/makit/context.rb +1 -1
  56. data/lib/makit/data.rb +49 -49
  57. data/lib/makit/directories.rb +140 -140
  58. data/lib/makit/directory.rb +262 -262
  59. data/lib/makit/docs/files.rb +89 -89
  60. data/lib/makit/docs/rake.rb +102 -102
  61. data/lib/makit/dotnet/cli.rb +69 -69
  62. data/lib/makit/dotnet/project.rb +217 -217
  63. data/lib/makit/dotnet/solution.rb +38 -38
  64. data/lib/makit/dotnet/solution_classlib.rb +239 -239
  65. data/lib/makit/dotnet/solution_console.rb +264 -264
  66. data/lib/makit/dotnet/solution_maui.rb +354 -354
  67. data/lib/makit/dotnet/solution_wasm.rb +275 -275
  68. data/lib/makit/dotnet/solution_wpf.rb +304 -304
  69. data/lib/makit/dotnet.rb +102 -102
  70. data/lib/makit/email.rb +90 -90
  71. data/lib/makit/environment.rb +142 -142
  72. data/lib/makit/examples/runner.rb +370 -370
  73. data/lib/makit/exceptions.rb +45 -45
  74. data/lib/makit/fileinfo.rb +32 -24
  75. data/lib/makit/files.rb +43 -43
  76. data/lib/makit/gems.rb +40 -40
  77. data/lib/makit/git/cli.rb +54 -54
  78. data/lib/makit/git/repository.rb +266 -90
  79. data/lib/makit/git.rb +104 -98
  80. data/lib/makit/gitlab/pipeline.rb +857 -0
  81. data/lib/makit/gitlab/pipeline_service_impl.rb +1536 -0
  82. data/lib/makit/gitlab_runner.rb +59 -59
  83. data/lib/makit/humanize.rb +218 -137
  84. data/lib/makit/indexer.rb +47 -47
  85. data/lib/makit/io/filesystem.rb +111 -0
  86. data/lib/makit/io/filesystem_service_impl.rb +337 -0
  87. data/lib/makit/logging/configuration.rb +308 -308
  88. data/lib/makit/logging/format_registry.rb +84 -84
  89. data/lib/makit/logging/formatters/base.rb +39 -39
  90. data/lib/makit/logging/formatters/console_formatter.rb +140 -140
  91. data/lib/makit/logging/formatters/json_formatter.rb +65 -65
  92. data/lib/makit/logging/formatters/plain_text_formatter.rb +71 -71
  93. data/lib/makit/logging/formatters/text_formatter.rb +64 -64
  94. data/lib/makit/logging/log_request.rb +119 -119
  95. data/lib/makit/logging/logger.rb +199 -199
  96. data/lib/makit/logging/sinks/base.rb +91 -91
  97. data/lib/makit/logging/sinks/console.rb +72 -72
  98. data/lib/makit/logging/sinks/file_sink.rb +92 -92
  99. data/lib/makit/logging/sinks/structured.rb +123 -123
  100. data/lib/makit/logging/sinks/unified_file_sink.rb +296 -296
  101. data/lib/makit/logging.rb +565 -565
  102. data/lib/makit/markdown.rb +75 -75
  103. data/lib/makit/mp/basic_object_mp.rb +17 -17
  104. data/lib/makit/mp/command_mp.rb +13 -13
  105. data/lib/makit/mp/command_request.mp.rb +17 -17
  106. data/lib/makit/mp/project_mp.rb +199 -199
  107. data/lib/makit/mp/string_mp.rb +205 -199
  108. data/lib/makit/nuget.rb +74 -74
  109. data/lib/makit/podman/podman.rb +458 -0
  110. data/lib/makit/podman/podman_service_impl.rb +1081 -0
  111. data/lib/makit/port.rb +32 -32
  112. data/lib/makit/process.rb +377 -377
  113. data/lib/makit/protoc.rb +112 -107
  114. data/lib/makit/rake/cli.rb +196 -196
  115. data/lib/makit/rake/trace_controller.rb +174 -174
  116. data/lib/makit/rake.rb +81 -81
  117. data/lib/makit/ruby/cli.rb +185 -185
  118. data/lib/makit/ruby.rb +25 -25
  119. data/lib/makit/secrets.rb +51 -51
  120. data/lib/makit/serializer.rb +130 -130
  121. data/lib/makit/services/builder.rb +186 -186
  122. data/lib/makit/services/error_handler.rb +226 -226
  123. data/lib/makit/services/repository_manager.rb +367 -231
  124. data/lib/makit/services/validator.rb +112 -112
  125. data/lib/makit/setup/classlib.rb +101 -101
  126. data/lib/makit/setup/gem.rb +268 -268
  127. data/lib/makit/setup/pages.rb +11 -11
  128. data/lib/makit/setup/razorclasslib.rb +101 -101
  129. data/lib/makit/setup/runner.rb +54 -54
  130. data/lib/makit/setup.rb +5 -5
  131. data/lib/makit/show.rb +110 -110
  132. data/lib/makit/storage.rb +126 -126
  133. data/lib/makit/symbols.rb +175 -170
  134. data/lib/makit/task_info.rb +130 -130
  135. data/lib/makit/tasks/at_exit.rb +15 -15
  136. data/lib/makit/tasks/build.rb +22 -22
  137. data/lib/makit/tasks/clean.rb +13 -13
  138. data/lib/makit/tasks/configure.rb +10 -10
  139. data/lib/makit/tasks/format.rb +10 -10
  140. data/lib/makit/tasks/hook_manager.rb +443 -443
  141. data/lib/makit/tasks/init.rb +49 -49
  142. data/lib/makit/tasks/integrate.rb +29 -29
  143. data/lib/makit/tasks/pull_incoming.rb +13 -13
  144. data/lib/makit/tasks/setup.rb +16 -16
  145. data/lib/makit/tasks/sync.rb +17 -17
  146. data/lib/makit/tasks/tag.rb +16 -16
  147. data/lib/makit/tasks/task_monkey_patch.rb +81 -81
  148. data/lib/makit/tasks/test.rb +22 -22
  149. data/lib/makit/tasks/update.rb +18 -18
  150. data/lib/makit/tasks.rb +20 -20
  151. data/lib/makit/test_cache.rb +239 -239
  152. data/lib/makit/tree.rb +37 -37
  153. data/lib/makit/v1/configuration/project_service_impl.rb +371 -0
  154. data/lib/makit/v1/git/git_repository_service_impl.rb +295 -0
  155. data/lib/makit/v1/makit.v1_pb.rb +35 -35
  156. data/lib/makit/v1/makit.v1_services_pb.rb +27 -27
  157. data/lib/makit/v1/services/repository_manager_service_impl.rb +572 -0
  158. data/lib/makit/version.rb +100 -100
  159. data/lib/makit/version_util.rb +21 -21
  160. data/lib/makit/wix.rb +95 -95
  161. data/lib/makit/yaml.rb +29 -29
  162. data/lib/makit/zip.rb +17 -17
  163. data/lib/makit copy.rb +44 -44
  164. data/lib/makit.rb +111 -43
  165. metadata +61 -36
@@ -1,174 +1,174 @@
1
- # frozen_string_literal: true
2
-
3
- module Makit
4
- module Rake
5
- # Enhanced trace controller for Rake with Makit-specific debugging information
6
- #
7
- # This class provides enhanced tracing capabilities when --trace is passed to rake,
8
- # adding makit-specific debugging information to help with troubleshooting and
9
- # understanding command execution flow.
10
- #
11
- # @example Basic usage
12
- # # In Rakefile
13
- # require "makit"
14
- # Makit::Rake::TraceController.setup
15
- #
16
- # @example With environment variable
17
- # MAKIT_TRACE=true rake --trace
18
- class TraceController
19
- # Set up enhanced tracing for Rake tasks
20
- #
21
- # This method should be called early in the Rakefile to enable enhanced
22
- # tracing when --trace is passed to rake.
23
- #
24
- # @return [void]
25
- def self.setup
26
- return unless should_enhance_trace?
27
-
28
- # Set up enhanced tracing
29
- setup_enhanced_tracing
30
- Makit::Logging.debug("Enhanced trace controller activated") if defined?(Makit::Logging)
31
- end
32
-
33
- # Check if trace enhancement should be enabled
34
- #
35
- # @return [Boolean] true if trace enhancement should be enabled
36
- def self.should_enhance_trace?
37
- ENV["RAKE_TRACE"] ||
38
- ARGV.include?("--trace") ||
39
- ENV["MAKIT_TRACE"] == "true"
40
- end
41
-
42
- # Get current trace status
43
- #
44
- # @return [Hash] trace status information
45
- def self.trace_status
46
- {
47
- rake_trace: ENV["RAKE_TRACE"],
48
- trace_flag: ARGV.include?("--trace"),
49
- makit_trace: ENV["MAKIT_TRACE"],
50
- enhanced: should_enhance_trace?,
51
- }
52
- end
53
-
54
- private
55
-
56
- # Set up enhanced tracing by monkey patching Rake's trace methods
57
- #
58
- # @return [void]
59
- def self.setup_enhanced_tracing
60
- # Store the original trace method if not already stored
61
- unless ::Rake::Task.method_defined?(:makit_original_trace)
62
- ::Rake::Task.class_eval do
63
- alias_method :makit_original_trace, :trace
64
-
65
- def trace(mode, message)
66
- # Call original trace
67
- makit_original_trace(mode, message)
68
-
69
- # Add makit-specific trace info
70
- add_makit_trace_info(mode, message)
71
- end
72
-
73
- private
74
-
75
- # Add makit-specific trace information
76
- #
77
- # @param mode [Symbol] trace mode (:execute, :invoke, :prereq, etc.)
78
- # @param message [String] trace message
79
- # @return [void]
80
- def add_makit_trace_info(mode, message)
81
- case mode
82
- when :execute
83
- trace_makit_execution(message)
84
- when :invoke
85
- trace_makit_invocation(message)
86
- when :prereq
87
- trace_makit_prerequisite(message)
88
- when :syntax
89
- trace_makit_syntax(message)
90
- end
91
- end
92
-
93
- # Trace makit execution with detailed information
94
- #
95
- # @param message [String] execution message
96
- # @return [void]
97
- def trace_makit_execution(message)
98
- if makit_related?(message)
99
- puts " [MAKIT] Executing: #{message}"
100
- puts " [MAKIT] Strategy: #{get_makit_strategy_info}"
101
- puts " [MAKIT] Environment: #{ENV["MAKIT_STRATEGY"] || "auto"}"
102
- puts " [MAKIT] Working Directory: #{Dir.pwd}"
103
- puts " [MAKIT] Timestamp: #{Time.now.iso8601}"
104
- puts " [MAKIT] Task: #{name}"
105
- end
106
- end
107
-
108
- # Trace makit invocation
109
- #
110
- # @param message [String] invocation message
111
- # @return [void]
112
- def trace_makit_invocation(message)
113
- if makit_related?(message)
114
- puts " [MAKIT] Invoking: #{message}"
115
- puts " [MAKIT] Task: #{name}"
116
- end
117
- end
118
-
119
- # Trace makit prerequisite
120
- #
121
- # @param message [String] prerequisite message
122
- # @return [void]
123
- def trace_makit_prerequisite(message)
124
- if makit_related?(message)
125
- puts " [MAKIT] Prerequisite: #{message}"
126
- puts " [MAKIT] Task: #{name}"
127
- end
128
- end
129
-
130
- # Trace makit syntax
131
- #
132
- # @param message [String] syntax message
133
- # @return [void]
134
- def trace_makit_syntax(message)
135
- if makit_related?(message)
136
- puts " [MAKIT] Syntax: #{message}"
137
- end
138
- end
139
-
140
- # Check if message is makit-related
141
- #
142
- # @param message [String] message to check
143
- # @return [Boolean] true if message is makit-related
144
- def makit_related?(message)
145
- message.downcase.include?("makit") ||
146
- message.include?("bundle") ||
147
- message.include?("gem") ||
148
- message.include?("dotnet") ||
149
- message.include?("protoc") ||
150
- message.include?("git")
151
- end
152
-
153
- # Get makit strategy information safely
154
- #
155
- # @return [String] strategy information
156
- def get_makit_strategy_info
157
- begin
158
- if defined?(Makit::Commands::Runner)
159
- runner = Makit::Commands::Runner.default
160
- info = runner.strategy_info
161
- "#{info[:type]} (#{info[:class]})"
162
- else
163
- "not available"
164
- end
165
- rescue => e
166
- "error: #{e.message}"
167
- end
168
- end
169
- end
170
- end
171
- end
172
- end
173
- end
174
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ module Rake
5
+ # Enhanced trace controller for Rake with Makit-specific debugging information
6
+ #
7
+ # This class provides enhanced tracing capabilities when --trace is passed to rake,
8
+ # adding makit-specific debugging information to help with troubleshooting and
9
+ # understanding command execution flow.
10
+ #
11
+ # @example Basic usage
12
+ # # In Rakefile
13
+ # require "makit"
14
+ # Makit::Rake::TraceController.setup
15
+ #
16
+ # @example With environment variable
17
+ # MAKIT_TRACE=true rake --trace
18
+ class TraceController
19
+ # Set up enhanced tracing for Rake tasks
20
+ #
21
+ # This method should be called early in the Rakefile to enable enhanced
22
+ # tracing when --trace is passed to rake.
23
+ #
24
+ # @return [void]
25
+ def self.setup
26
+ return unless should_enhance_trace?
27
+
28
+ # Set up enhanced tracing
29
+ setup_enhanced_tracing
30
+ Makit::Logging.debug("Enhanced trace controller activated") if defined?(Makit::Logging)
31
+ end
32
+
33
+ # Check if trace enhancement should be enabled
34
+ #
35
+ # @return [Boolean] true if trace enhancement should be enabled
36
+ def self.should_enhance_trace?
37
+ ENV["RAKE_TRACE"] ||
38
+ ARGV.include?("--trace") ||
39
+ ENV["MAKIT_TRACE"] == "true"
40
+ end
41
+
42
+ # Get current trace status
43
+ #
44
+ # @return [Hash] trace status information
45
+ def self.trace_status
46
+ {
47
+ rake_trace: ENV["RAKE_TRACE"],
48
+ trace_flag: ARGV.include?("--trace"),
49
+ makit_trace: ENV["MAKIT_TRACE"],
50
+ enhanced: should_enhance_trace?,
51
+ }
52
+ end
53
+
54
+ private
55
+
56
+ # Set up enhanced tracing by monkey patching Rake's trace methods
57
+ #
58
+ # @return [void]
59
+ def self.setup_enhanced_tracing
60
+ # Store the original trace method if not already stored
61
+ unless ::Rake::Task.method_defined?(:makit_original_trace)
62
+ ::Rake::Task.class_eval do
63
+ alias_method :makit_original_trace, :trace
64
+
65
+ def trace(mode, message)
66
+ # Call original trace
67
+ makit_original_trace(mode, message)
68
+
69
+ # Add makit-specific trace info
70
+ add_makit_trace_info(mode, message)
71
+ end
72
+
73
+ private
74
+
75
+ # Add makit-specific trace information
76
+ #
77
+ # @param mode [Symbol] trace mode (:execute, :invoke, :prereq, etc.)
78
+ # @param message [String] trace message
79
+ # @return [void]
80
+ def add_makit_trace_info(mode, message)
81
+ case mode
82
+ when :execute
83
+ trace_makit_execution(message)
84
+ when :invoke
85
+ trace_makit_invocation(message)
86
+ when :prereq
87
+ trace_makit_prerequisite(message)
88
+ when :syntax
89
+ trace_makit_syntax(message)
90
+ end
91
+ end
92
+
93
+ # Trace makit execution with detailed information
94
+ #
95
+ # @param message [String] execution message
96
+ # @return [void]
97
+ def trace_makit_execution(message)
98
+ if makit_related?(message)
99
+ puts " [MAKIT] Executing: #{message}"
100
+ puts " [MAKIT] Strategy: #{get_makit_strategy_info}"
101
+ puts " [MAKIT] Environment: #{ENV["MAKIT_STRATEGY"] || "auto"}"
102
+ puts " [MAKIT] Working Directory: #{Dir.pwd}"
103
+ puts " [MAKIT] Timestamp: #{Time.now.iso8601}"
104
+ puts " [MAKIT] Task: #{name}"
105
+ end
106
+ end
107
+
108
+ # Trace makit invocation
109
+ #
110
+ # @param message [String] invocation message
111
+ # @return [void]
112
+ def trace_makit_invocation(message)
113
+ if makit_related?(message)
114
+ puts " [MAKIT] Invoking: #{message}"
115
+ puts " [MAKIT] Task: #{name}"
116
+ end
117
+ end
118
+
119
+ # Trace makit prerequisite
120
+ #
121
+ # @param message [String] prerequisite message
122
+ # @return [void]
123
+ def trace_makit_prerequisite(message)
124
+ if makit_related?(message)
125
+ puts " [MAKIT] Prerequisite: #{message}"
126
+ puts " [MAKIT] Task: #{name}"
127
+ end
128
+ end
129
+
130
+ # Trace makit syntax
131
+ #
132
+ # @param message [String] syntax message
133
+ # @return [void]
134
+ def trace_makit_syntax(message)
135
+ if makit_related?(message)
136
+ puts " [MAKIT] Syntax: #{message}"
137
+ end
138
+ end
139
+
140
+ # Check if message is makit-related
141
+ #
142
+ # @param message [String] message to check
143
+ # @return [Boolean] true if message is makit-related
144
+ def makit_related?(message)
145
+ message.downcase.include?("makit") ||
146
+ message.include?("bundle") ||
147
+ message.include?("gem") ||
148
+ message.include?("dotnet") ||
149
+ message.include?("protoc") ||
150
+ message.include?("git")
151
+ end
152
+
153
+ # Get makit strategy information safely
154
+ #
155
+ # @return [String] strategy information
156
+ def get_makit_strategy_info
157
+ begin
158
+ if defined?(Makit::Commands::Runner)
159
+ runner = Makit::Commands::Runner.default
160
+ info = runner.strategy_info
161
+ "#{info[:type]} (#{info[:class]})"
162
+ else
163
+ "not available"
164
+ end
165
+ rescue => e
166
+ "error: #{e.message}"
167
+ end
168
+ end
169
+ end
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
data/lib/makit/rake.rb CHANGED
@@ -1,81 +1,81 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "rake/trace_controller"
4
-
5
- module Makit
6
- module Rake
7
- # Enhanced Rake integration for Makit
8
- #
9
- # This module provides enhanced Rake integration capabilities including
10
- # trace enhancement, task monitoring, and debugging utilities.
11
- #
12
- # @example Basic usage
13
- # require "makit"
14
- # Makit::Rake.setup
15
- #
16
- # @example With custom options
17
- # Makit::Rake.setup(trace: true, verbose: true)
18
- class << self
19
- # Set up enhanced Rake integration
20
- #
21
- # @param trace [Boolean] enable trace enhancement (default: auto-detect)
22
- # @param verbose [Boolean] enable verbose output (default: false)
23
- # @return [void]
24
- def setup(trace: nil, verbose: false)
25
- # Set up trace enhancement
26
- if trace.nil?
27
- TraceController.setup
28
- elsif trace
29
- ENV["MAKIT_TRACE"] = "true"
30
- TraceController.setup
31
- end
32
-
33
- # Set up verbose output if requested
34
- if verbose
35
- ENV["MAKIT_VERBOSE"] = "true"
36
- end
37
-
38
- # Log setup completion
39
- if defined?(Makit::Logging)
40
- Makit::Logging.debug("Makit Rake integration setup completed")
41
- Makit::Logging.debug("Trace status: #{TraceController.trace_status}")
42
- end
43
- end
44
-
45
- # Get current Rake integration status
46
- #
47
- # @return [Hash] integration status
48
- def status
49
- {
50
- trace_controller: TraceController.trace_status,
51
- verbose: ENV["MAKIT_VERBOSE"] == "true",
52
- strategy: get_strategy_info,
53
- }
54
- end
55
-
56
- # Check if enhanced tracing is active
57
- #
58
- # @return [Boolean] true if enhanced tracing is active
59
- def tracing_enabled?
60
- TraceController.should_enhance_trace?
61
- end
62
-
63
- private
64
-
65
- # Get strategy information safely
66
- #
67
- # @return [Hash] strategy information
68
- def get_strategy_info
69
- begin
70
- if defined?(Makit::Commands::Runner)
71
- Makit::Commands::Runner.default.strategy_info
72
- else
73
- { error: "Commands::Runner not available" }
74
- end
75
- rescue => e
76
- { error: e.message }
77
- end
78
- end
79
- end
80
- end
81
- end
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "rake/trace_controller"
4
+
5
+ module Makit
6
+ module Rake
7
+ # Enhanced Rake integration for Makit
8
+ #
9
+ # This module provides enhanced Rake integration capabilities including
10
+ # trace enhancement, task monitoring, and debugging utilities.
11
+ #
12
+ # @example Basic usage
13
+ # require "makit"
14
+ # Makit::Rake.setup
15
+ #
16
+ # @example With custom options
17
+ # Makit::Rake.setup(trace: true, verbose: true)
18
+ class << self
19
+ # Set up enhanced Rake integration
20
+ #
21
+ # @param trace [Boolean] enable trace enhancement (default: auto-detect)
22
+ # @param verbose [Boolean] enable verbose output (default: false)
23
+ # @return [void]
24
+ def setup(trace: nil, verbose: false)
25
+ # Set up trace enhancement
26
+ if trace.nil?
27
+ TraceController.setup
28
+ elsif trace
29
+ ENV["MAKIT_TRACE"] = "true"
30
+ TraceController.setup
31
+ end
32
+
33
+ # Set up verbose output if requested
34
+ if verbose
35
+ ENV["MAKIT_VERBOSE"] = "true"
36
+ end
37
+
38
+ # Log setup completion
39
+ if defined?(Makit::Logging)
40
+ Makit::Logging.debug("Makit Rake integration setup completed")
41
+ Makit::Logging.debug("Trace status: #{TraceController.trace_status}")
42
+ end
43
+ end
44
+
45
+ # Get current Rake integration status
46
+ #
47
+ # @return [Hash] integration status
48
+ def status
49
+ {
50
+ trace_controller: TraceController.trace_status,
51
+ verbose: ENV["MAKIT_VERBOSE"] == "true",
52
+ strategy: get_strategy_info,
53
+ }
54
+ end
55
+
56
+ # Check if enhanced tracing is active
57
+ #
58
+ # @return [Boolean] true if enhanced tracing is active
59
+ def tracing_enabled?
60
+ TraceController.should_enhance_trace?
61
+ end
62
+
63
+ private
64
+
65
+ # Get strategy information safely
66
+ #
67
+ # @return [Hash] strategy information
68
+ def get_strategy_info
69
+ begin
70
+ if defined?(Makit::Commands::Runner)
71
+ Makit::Commands::Runner.default.strategy_info
72
+ else
73
+ { error: "Commands::Runner not available" }
74
+ end
75
+ rescue => e
76
+ { error: e.message }
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end