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/tasks/init.rb
CHANGED
@@ -1,49 +1,49 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
Rake.application.top_level_tasks.unshift("init")
|
4
|
-
|
5
|
-
task :init do
|
6
|
-
puts "-" * 80
|
7
|
-
humanized_timestamp = Makit::Humanize.get_humanized_timestamp(Time.now)
|
8
|
-
# log the rake + arguments, as it would be invoke at the console.
|
9
|
-
# for instance: rake -T
|
10
|
-
# or: rake
|
11
|
-
# or: rake clean
|
12
|
-
# or: rake LOG_LEVEL=debug
|
13
|
-
command = "rake #{ARGV.join(" ")}"
|
14
|
-
message = "#{command} (#{humanized_timestamp})"
|
15
|
-
|
16
|
-
# Create filename-friendly version of rake command
|
17
|
-
rake_name = command.gsub(/[^a-zA-Z0-9\-_]/, "_").gsub(/_+/, "_").gsub(/^_|_$/, "")
|
18
|
-
|
19
|
-
# Get the default logger and add custom file logging sinks
|
20
|
-
log = Makit::Logging.default_logger
|
21
|
-
|
22
|
-
# Add structured JSON and simple text logging sinks to the default logger
|
23
|
-
additional_sinks = [
|
24
|
-
Makit::Logging::Sinks::UnifiedFileSink.new(
|
25
|
-
configurations: [
|
26
|
-
# Structured JSON logging
|
27
|
-
{
|
28
|
-
file: "artifacts/#{rake_name}.json",
|
29
|
-
format: :json,
|
30
|
-
append: true,
|
31
|
-
include_metadata: true,
|
32
|
-
},
|
33
|
-
# Simple text logging with rendered context
|
34
|
-
{
|
35
|
-
file: "artifacts/#{rake_name}.txt",
|
36
|
-
format: :plain,
|
37
|
-
append: true,
|
38
|
-
include_context: true,
|
39
|
-
},
|
40
|
-
],
|
41
|
-
),
|
42
|
-
]
|
43
|
-
|
44
|
-
# Add the additional sinks to the default logger
|
45
|
-
log.sinks.concat(additional_sinks)
|
46
|
-
|
47
|
-
# Log with the enhanced default logger
|
48
|
-
log.info(message)
|
49
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Rake.application.top_level_tasks.unshift("init")
|
4
|
+
|
5
|
+
task :init do
|
6
|
+
puts "-" * 80
|
7
|
+
humanized_timestamp = Makit::Humanize.get_humanized_timestamp(Time.now)
|
8
|
+
# log the rake + arguments, as it would be invoke at the console.
|
9
|
+
# for instance: rake -T
|
10
|
+
# or: rake
|
11
|
+
# or: rake clean
|
12
|
+
# or: rake LOG_LEVEL=debug
|
13
|
+
command = "rake #{ARGV.join(" ")}"
|
14
|
+
message = "#{command} (#{humanized_timestamp})"
|
15
|
+
|
16
|
+
# Create filename-friendly version of rake command
|
17
|
+
rake_name = command.gsub(/[^a-zA-Z0-9\-_]/, "_").gsub(/_+/, "_").gsub(/^_|_$/, "")
|
18
|
+
|
19
|
+
# Get the default logger and add custom file logging sinks
|
20
|
+
log = Makit::Logging.default_logger
|
21
|
+
|
22
|
+
# Add structured JSON and simple text logging sinks to the default logger
|
23
|
+
additional_sinks = [
|
24
|
+
Makit::Logging::Sinks::UnifiedFileSink.new(
|
25
|
+
configurations: [
|
26
|
+
# Structured JSON logging
|
27
|
+
{
|
28
|
+
file: "artifacts/#{rake_name}.json",
|
29
|
+
format: :json,
|
30
|
+
append: true,
|
31
|
+
include_metadata: true,
|
32
|
+
},
|
33
|
+
# Simple text logging with rendered context
|
34
|
+
{
|
35
|
+
file: "artifacts/#{rake_name}.txt",
|
36
|
+
format: :plain,
|
37
|
+
append: true,
|
38
|
+
include_context: true,
|
39
|
+
},
|
40
|
+
],
|
41
|
+
),
|
42
|
+
]
|
43
|
+
|
44
|
+
# Add the additional sinks to the default logger
|
45
|
+
log.sinks.concat(additional_sinks)
|
46
|
+
|
47
|
+
# Log with the enhanced default logger
|
48
|
+
log.info(message)
|
49
|
+
end
|
@@ -1,29 +1,29 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../git/repository"
|
4
|
-
|
5
|
-
if Dir.exist?(".git")
|
6
|
-
desc "Integrate changes into the git repository."
|
7
|
-
task :integrate do
|
8
|
-
Makit::Logging.default_logger.task_start("integrate")
|
9
|
-
unstaged_files = Makit::Git::Repository.unstaged_files
|
10
|
-
untracked_files = Makit::Git::Repository.untracked_files
|
11
|
-
if unstaged_files.length.positive? || untracked_files.length.positive?
|
12
|
-
#Makit::Git::CLI.integrate
|
13
|
-
#return unless Repository.git_repo? && !Repository.detached
|
14
|
-
|
15
|
-
## check for unstaged or untracked files
|
16
|
-
# unstaged_files = `git status --porcelain`.split("\n")
|
17
|
-
# untracked_files = `git ls-files --others --exclude-standard`.split("\n")
|
18
|
-
# return unless unstaged_files.length.positive? || untracked_files.length.positive?
|
19
|
-
|
20
|
-
"git add .".try
|
21
|
-
"git commit -m \"integrate\"".run unless Makit::Git::Repository.clean?
|
22
|
-
else
|
23
|
-
Makit::Logging.default_logger.info("No unstaged or untracked files found")
|
24
|
-
# puts " No unstaged or untracked files found".colorize(:grey)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
else
|
28
|
-
Makit::Logging.default_logger.debug("Not a git repository, skipping integrate")
|
29
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../git/repository"
|
4
|
+
|
5
|
+
if Dir.exist?(".git")
|
6
|
+
desc "Integrate changes into the git repository."
|
7
|
+
task :integrate do
|
8
|
+
Makit::Logging.default_logger.task_start("integrate")
|
9
|
+
unstaged_files = Makit::Git::Repository.unstaged_files
|
10
|
+
untracked_files = Makit::Git::Repository.untracked_files
|
11
|
+
if unstaged_files.length.positive? || untracked_files.length.positive?
|
12
|
+
#Makit::Git::CLI.integrate
|
13
|
+
#return unless Repository.git_repo? && !Repository.detached
|
14
|
+
|
15
|
+
## check for unstaged or untracked files
|
16
|
+
# unstaged_files = `git status --porcelain`.split("\n")
|
17
|
+
# untracked_files = `git ls-files --others --exclude-standard`.split("\n")
|
18
|
+
# return unless unstaged_files.length.positive? || untracked_files.length.positive?
|
19
|
+
|
20
|
+
"git add .".try
|
21
|
+
"git commit -m \"integrate\"".run unless Makit::Git::Repository.clean?
|
22
|
+
else
|
23
|
+
Makit::Logging.default_logger.info("No unstaged or untracked files found")
|
24
|
+
# puts " No unstaged or untracked files found".colorize(:grey)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
else
|
28
|
+
Makit::Logging.default_logger.debug("Not a git repository, skipping integrate")
|
29
|
+
end
|
@@ -1,13 +1,13 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../git/repository"
|
4
|
-
|
5
|
-
if Makit::Git::Repository.git_repo?
|
6
|
-
desc "pull changes from the remote branch, preferring incoming changes for conflicts"
|
7
|
-
task :pull_incoming do
|
8
|
-
Makit::Logging.default_logger.task_start("pull_incoming")
|
9
|
-
# Makit::SHOW.task(:pull_incoming)
|
10
|
-
puts " git branch is ".colorize(:grey) + Makit::Git::Repository.branch.to_s.colorize(:green)
|
11
|
-
"git pull origin #{Makit::Git::Repository.branch} -X theirs".try
|
12
|
-
end
|
13
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../git/repository"
|
4
|
+
|
5
|
+
if Makit::Git::Repository.git_repo?
|
6
|
+
desc "pull changes from the remote branch, preferring incoming changes for conflicts"
|
7
|
+
task :pull_incoming do
|
8
|
+
Makit::Logging.default_logger.task_start("pull_incoming")
|
9
|
+
# Makit::SHOW.task(:pull_incoming)
|
10
|
+
puts " git branch is ".colorize(:grey) + Makit::Git::Repository.branch.to_s.colorize(:green)
|
11
|
+
"git pull origin #{Makit::Git::Repository.branch} -X theirs".try
|
12
|
+
end
|
13
|
+
end
|
data/lib/makit/tasks/setup.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../setup/runner"
|
4
|
-
|
5
|
-
if File.exist?(".makit.json")
|
6
|
-
desc "Setup project files.."
|
7
|
-
task :setup do
|
8
|
-
Makit::Logging.default_logger.task_start("setup")
|
9
|
-
Makit::Setup::Runner.run
|
10
|
-
end
|
11
|
-
else
|
12
|
-
Makit::Logging.default_logger.debug("Project not configured, skipping setup task definition")
|
13
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../setup/runner"
|
4
|
+
|
5
|
+
if File.exist?(".makit.json")
|
6
|
+
desc "Setup project files.."
|
7
|
+
task :setup do
|
8
|
+
Makit::Logging.default_logger.task_start("setup")
|
9
|
+
Makit::Setup::Runner.run
|
10
|
+
end
|
11
|
+
else
|
12
|
+
Makit::Logging.default_logger.debug("Project not configured, skipping setup task definition")
|
13
|
+
end
|
data/lib/makit/tasks/sync.rb
CHANGED
@@ -1,17 +1,17 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../git/cli"
|
4
|
-
|
5
|
-
if Dir.exist?(".git")
|
6
|
-
desc "Sync changes with the git repository."
|
7
|
-
task :sync do
|
8
|
-
Makit::Logging.default_logger.task_start("sync")
|
9
|
-
# Makit::SHOW.task(:sync)
|
10
|
-
Makit::Git::CLI.sync
|
11
|
-
"git pull".try
|
12
|
-
"git push origin".try
|
13
|
-
"git push origin --tags".try
|
14
|
-
end
|
15
|
-
else
|
16
|
-
Makit::Logging.default_logger.debug("Not a git repository, skipping sync")
|
17
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../git/cli"
|
4
|
+
|
5
|
+
if Dir.exist?(".git")
|
6
|
+
desc "Sync changes with the git repository."
|
7
|
+
task :sync do
|
8
|
+
Makit::Logging.default_logger.task_start("sync")
|
9
|
+
# Makit::SHOW.task(:sync)
|
10
|
+
Makit::Git::CLI.sync
|
11
|
+
"git pull".try
|
12
|
+
"git push origin".try
|
13
|
+
"git push origin --tags".try
|
14
|
+
end
|
15
|
+
else
|
16
|
+
Makit::Logging.default_logger.debug("Not a git repository, skipping sync")
|
17
|
+
end
|
data/lib/makit/tasks/tag.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
if Dir.exist?(".git")
|
4
|
-
desc "tag the current version"
|
5
|
-
task :tag do
|
6
|
-
# check if the variable VERSION is defined
|
7
|
-
unless defined?(VERSION)
|
8
|
-
puts " VERSION is not defined".colorize(:red)
|
9
|
-
return
|
10
|
-
end
|
11
|
-
|
12
|
-
Makit::Git::CLI.tag(VERSION)
|
13
|
-
end
|
14
|
-
else
|
15
|
-
Makit::Logging.default_logger.debug("Not a git repository, skipping tag")
|
16
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
if Dir.exist?(".git")
|
4
|
+
desc "tag the current version"
|
5
|
+
task :tag do
|
6
|
+
# check if the variable VERSION is defined
|
7
|
+
unless defined?(VERSION)
|
8
|
+
puts " VERSION is not defined".colorize(:red)
|
9
|
+
return
|
10
|
+
end
|
11
|
+
|
12
|
+
Makit::Git::CLI.tag(VERSION)
|
13
|
+
end
|
14
|
+
else
|
15
|
+
Makit::Logging.default_logger.debug("Not a git repository, skipping tag")
|
16
|
+
end
|
@@ -1,81 +1,81 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Monkey patch for Rake::Task to add hook support
|
4
|
-
#
|
5
|
-
# This module patches Rake::Task to automatically execute pre and post hooks
|
6
|
-
# for all task invocations. It preserves the original behavior while adding
|
7
|
-
# the hook functionality.
|
8
|
-
#
|
9
|
-
# @note This file should be required after the HookManager class is defined
|
10
|
-
require_relative "hook_manager"
|
11
|
-
|
12
|
-
# Monkey patch Rake::Task to add hook support
|
13
|
-
module Rake
|
14
|
-
class Task
|
15
|
-
# Store original methods before patching
|
16
|
-
alias original_invoke invoke
|
17
|
-
alias original_execute execute
|
18
|
-
|
19
|
-
# Enhanced invoke method with hook support
|
20
|
-
#
|
21
|
-
# This method wraps the original invoke method to execute pre and post hooks
|
22
|
-
# around task execution. It handles errors gracefully and ensures hooks are
|
23
|
-
# always executed even if the task fails.
|
24
|
-
#
|
25
|
-
# @param args [Array] arguments passed to the task
|
26
|
-
# @return [Object] the result of the task execution
|
27
|
-
def invoke(*args)
|
28
|
-
start_time = Time.now
|
29
|
-
result = nil
|
30
|
-
error = nil
|
31
|
-
|
32
|
-
begin
|
33
|
-
# Execute pre-task hooks
|
34
|
-
Makit::Tasks::HookManager.execute_pre_hooks(name)
|
35
|
-
|
36
|
-
# Execute the original task
|
37
|
-
result = original_invoke(*args)
|
38
|
-
rescue StandardError => e
|
39
|
-
error = e
|
40
|
-
raise
|
41
|
-
ensure
|
42
|
-
# Execute post-task hooks (always runs, even on error)
|
43
|
-
duration = Time.now - start_time
|
44
|
-
Makit::Tasks::HookManager.execute_post_hooks(name, duration, result, error)
|
45
|
-
end
|
46
|
-
|
47
|
-
result
|
48
|
-
end
|
49
|
-
|
50
|
-
# Enhanced execute method with hook support
|
51
|
-
#
|
52
|
-
# This method wraps the original execute method to execute pre and post hooks
|
53
|
-
# around task execution. It handles errors gracefully and ensures hooks are
|
54
|
-
# always executed even if the task fails.
|
55
|
-
#
|
56
|
-
# @param args [Array] arguments passed to the task
|
57
|
-
# @return [Object] the result of the task execution
|
58
|
-
def execute(*args)
|
59
|
-
start_time = Time.now
|
60
|
-
result = nil
|
61
|
-
error = nil
|
62
|
-
|
63
|
-
begin
|
64
|
-
# Execute pre-task hooks
|
65
|
-
Makit::Tasks::HookManager.execute_pre_hooks(name)
|
66
|
-
|
67
|
-
# Execute the original task
|
68
|
-
result = original_execute(*args)
|
69
|
-
rescue StandardError => e
|
70
|
-
error = e
|
71
|
-
raise
|
72
|
-
ensure
|
73
|
-
# Execute post-task hooks (always runs, even on error)
|
74
|
-
duration = Time.now - start_time
|
75
|
-
Makit::Tasks::HookManager.execute_post_hooks(name, duration, result, error)
|
76
|
-
end
|
77
|
-
|
78
|
-
result
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Monkey patch for Rake::Task to add hook support
|
4
|
+
#
|
5
|
+
# This module patches Rake::Task to automatically execute pre and post hooks
|
6
|
+
# for all task invocations. It preserves the original behavior while adding
|
7
|
+
# the hook functionality.
|
8
|
+
#
|
9
|
+
# @note This file should be required after the HookManager class is defined
|
10
|
+
require_relative "hook_manager"
|
11
|
+
|
12
|
+
# Monkey patch Rake::Task to add hook support
|
13
|
+
module Rake
|
14
|
+
class Task
|
15
|
+
# Store original methods before patching
|
16
|
+
alias original_invoke invoke
|
17
|
+
alias original_execute execute
|
18
|
+
|
19
|
+
# Enhanced invoke method with hook support
|
20
|
+
#
|
21
|
+
# This method wraps the original invoke method to execute pre and post hooks
|
22
|
+
# around task execution. It handles errors gracefully and ensures hooks are
|
23
|
+
# always executed even if the task fails.
|
24
|
+
#
|
25
|
+
# @param args [Array] arguments passed to the task
|
26
|
+
# @return [Object] the result of the task execution
|
27
|
+
def invoke(*args)
|
28
|
+
start_time = Time.now
|
29
|
+
result = nil
|
30
|
+
error = nil
|
31
|
+
|
32
|
+
begin
|
33
|
+
# Execute pre-task hooks
|
34
|
+
Makit::Tasks::HookManager.execute_pre_hooks(name)
|
35
|
+
|
36
|
+
# Execute the original task
|
37
|
+
result = original_invoke(*args)
|
38
|
+
rescue StandardError => e
|
39
|
+
error = e
|
40
|
+
raise
|
41
|
+
ensure
|
42
|
+
# Execute post-task hooks (always runs, even on error)
|
43
|
+
duration = Time.now - start_time
|
44
|
+
Makit::Tasks::HookManager.execute_post_hooks(name, duration, result, error)
|
45
|
+
end
|
46
|
+
|
47
|
+
result
|
48
|
+
end
|
49
|
+
|
50
|
+
# Enhanced execute method with hook support
|
51
|
+
#
|
52
|
+
# This method wraps the original execute method to execute pre and post hooks
|
53
|
+
# around task execution. It handles errors gracefully and ensures hooks are
|
54
|
+
# always executed even if the task fails.
|
55
|
+
#
|
56
|
+
# @param args [Array] arguments passed to the task
|
57
|
+
# @return [Object] the result of the task execution
|
58
|
+
def execute(*args)
|
59
|
+
start_time = Time.now
|
60
|
+
result = nil
|
61
|
+
error = nil
|
62
|
+
|
63
|
+
begin
|
64
|
+
# Execute pre-task hooks
|
65
|
+
Makit::Tasks::HookManager.execute_pre_hooks(name)
|
66
|
+
|
67
|
+
# Execute the original task
|
68
|
+
result = original_execute(*args)
|
69
|
+
rescue StandardError => e
|
70
|
+
error = e
|
71
|
+
raise
|
72
|
+
ensure
|
73
|
+
# Execute post-task hooks (always runs, even on error)
|
74
|
+
duration = Time.now - start_time
|
75
|
+
Makit::Tasks::HookManager.execute_post_hooks(name, duration, result, error)
|
76
|
+
end
|
77
|
+
|
78
|
+
result
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
data/lib/makit/tasks/test.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../setup/runner"
|
4
|
-
|
5
|
-
if File.exist?(".makit.json")
|
6
|
-
desc "Test project artifacts.."
|
7
|
-
task :test do
|
8
|
-
Makit::Logging.default_logger.task_start("test")
|
9
|
-
# load the default project configuration
|
10
|
-
# puts "loading project configuration"
|
11
|
-
project = Makit::Configuration::Project.default
|
12
|
-
|
13
|
-
# if the project has a build step, run the commands
|
14
|
-
test_step = project.steps.find { |step| step.name == "test" }
|
15
|
-
test_step&.commands&.each do |command|
|
16
|
-
request = Makit::Commands::Request.from_string(command)
|
17
|
-
Makit::Commands::Runner.default.execute(request)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
else
|
21
|
-
Makit::Logging.default_logger.debug("Project not configured, skipping setup task definition")
|
22
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../setup/runner"
|
4
|
+
|
5
|
+
if File.exist?(".makit.json")
|
6
|
+
desc "Test project artifacts.."
|
7
|
+
task :test do
|
8
|
+
Makit::Logging.default_logger.task_start("test")
|
9
|
+
# load the default project configuration
|
10
|
+
# puts "loading project configuration"
|
11
|
+
project = Makit::Configuration::Project.default
|
12
|
+
|
13
|
+
# if the project has a build step, run the commands
|
14
|
+
test_step = project.steps.find { |step| step.name == "test" }
|
15
|
+
test_step&.commands&.each do |command|
|
16
|
+
request = Makit::Commands::Request.from_string(command)
|
17
|
+
Makit::Commands::Runner.default.execute(request)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
else
|
21
|
+
Makit::Logging.default_logger.debug("Project not configured, skipping setup task definition")
|
22
|
+
end
|
data/lib/makit/tasks/update.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
desc "Update project dependencies"
|
4
|
-
task :update do
|
5
|
-
"bundle update".run if File.exist?("Gemfile")
|
6
|
-
# are there any *.sln files?
|
7
|
-
Dir.glob("**/*.sln").each do |sln_file|
|
8
|
-
"dotnet sln migrate #{sln_file}".run
|
9
|
-
FileUtils.rm_f(sln_file) if File.exist?(sln_file.gsub(".sln", ".slnx"))
|
10
|
-
end
|
11
|
-
"dotnet tool update --global dotnet-outdated-tool".run
|
12
|
-
Dir.glob("**/*.slnx").each do |slnx_file|
|
13
|
-
"dotnet outdated #{slnx_file} --upgrade:Auto".run
|
14
|
-
end
|
15
|
-
Dir.glob("**/*.csproj").each do |csproj_file|
|
16
|
-
"dotnet outdated #{csproj_file} --upgrade:Auto".run
|
17
|
-
end
|
18
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
desc "Update project dependencies"
|
4
|
+
task :update do
|
5
|
+
"bundle update".run if File.exist?("Gemfile")
|
6
|
+
# are there any *.sln files?
|
7
|
+
Dir.glob("**/*.sln").each do |sln_file|
|
8
|
+
"dotnet sln migrate #{sln_file}".run
|
9
|
+
FileUtils.rm_f(sln_file) if File.exist?(sln_file.gsub(".sln", ".slnx"))
|
10
|
+
end
|
11
|
+
"dotnet tool update --global dotnet-outdated-tool".run
|
12
|
+
Dir.glob("**/*.slnx").each do |slnx_file|
|
13
|
+
"dotnet outdated #{slnx_file} --upgrade:Auto".run
|
14
|
+
end
|
15
|
+
Dir.glob("**/*.csproj").each do |csproj_file|
|
16
|
+
"dotnet outdated #{csproj_file} --upgrade:Auto".run
|
17
|
+
end
|
18
|
+
end
|
data/lib/makit/tasks.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Load all task-related modules
|
4
|
-
require_relative "tasks/hook_manager"
|
5
|
-
require_relative "tasks/task_monkey_patch"
|
6
|
-
|
7
|
-
require_relative "tasks/build"
|
8
|
-
require_relative "tasks/clean"
|
9
|
-
require_relative "tasks/configure"
|
10
|
-
require_relative "tasks/integrate"
|
11
|
-
require_relative "tasks/tag"
|
12
|
-
require_relative "tasks/pull_incoming"
|
13
|
-
# require_relative "tasks/publish"
|
14
|
-
# require_relative "tasks/install"
|
15
|
-
require_relative "tasks/sync"
|
16
|
-
# require_relative "tasks/configure"
|
17
|
-
require_relative "tasks/setup"
|
18
|
-
require_relative "tasks/test"
|
19
|
-
require_relative "tasks/format"
|
20
|
-
require_relative "tasks/update"
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Load all task-related modules
|
4
|
+
require_relative "tasks/hook_manager"
|
5
|
+
require_relative "tasks/task_monkey_patch"
|
6
|
+
|
7
|
+
require_relative "tasks/build"
|
8
|
+
require_relative "tasks/clean"
|
9
|
+
require_relative "tasks/configure"
|
10
|
+
require_relative "tasks/integrate"
|
11
|
+
require_relative "tasks/tag"
|
12
|
+
require_relative "tasks/pull_incoming"
|
13
|
+
# require_relative "tasks/publish"
|
14
|
+
# require_relative "tasks/install"
|
15
|
+
require_relative "tasks/sync"
|
16
|
+
# require_relative "tasks/configure"
|
17
|
+
require_relative "tasks/setup"
|
18
|
+
require_relative "tasks/test"
|
19
|
+
require_relative "tasks/format"
|
20
|
+
require_relative "tasks/update"
|