makit 0.0.68 → 0.0.70

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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/lib/makit/apache.rb +32 -32
  3. data/lib/makit/cli/clean.rb +14 -14
  4. data/lib/makit/cli/clone.rb +59 -59
  5. data/lib/makit/cli/init.rb +38 -38
  6. data/lib/makit/cli/main.rb +33 -33
  7. data/lib/makit/cli/make.rb +54 -54
  8. data/lib/makit/cli/new.rb +37 -37
  9. data/lib/makit/cli/nuget_cache.rb +38 -38
  10. data/lib/makit/cli/pull.rb +31 -31
  11. data/lib/makit/cli/setup.rb +71 -71
  12. data/lib/makit/cli/work.rb +21 -21
  13. data/lib/makit/command_runner.rb +404 -404
  14. data/lib/makit/commands.rb +21 -21
  15. data/lib/makit/content/default_gitignore.rb +5 -5
  16. data/lib/makit/content/default_rakefile.rb +11 -11
  17. data/lib/makit/content/gem_rakefile.rb +14 -14
  18. data/lib/makit/data.rb +50 -50
  19. data/lib/makit/directories.rb +143 -143
  20. data/lib/makit/directory.rb +264 -264
  21. data/lib/makit/docs/files.rb +94 -0
  22. data/lib/makit/docs/rake.rb +101 -0
  23. data/lib/makit/dotnet.rb +182 -182
  24. data/lib/makit/environment.rb +127 -127
  25. data/lib/makit/fileinfo.rb +26 -16
  26. data/lib/makit/files.rb +47 -47
  27. data/lib/makit/git.rb +145 -96
  28. data/lib/makit/gitlab_runner.rb +60 -60
  29. data/lib/makit/humanize.rb +129 -129
  30. data/lib/makit/indexer.rb +56 -56
  31. data/lib/makit/logging.rb +106 -106
  32. data/lib/makit/markdown.rb +75 -75
  33. data/lib/makit/mp/basic_object_mp.rb +16 -16
  34. data/lib/makit/mp/command_mp.rb +13 -0
  35. data/lib/makit/mp/command_request.mp.rb +16 -16
  36. data/lib/makit/mp/project_mp.rb +210 -210
  37. data/lib/makit/mp/string_mp.rb +137 -137
  38. data/lib/makit/nuget.rb +62 -62
  39. data/lib/makit/process.rb +26 -26
  40. data/lib/makit/protoc.rb +104 -104
  41. data/lib/makit/secrets.rb +51 -51
  42. data/lib/makit/serializer.rb +115 -115
  43. data/lib/makit/show.rb +110 -110
  44. data/lib/makit/storage.rb +131 -131
  45. data/lib/makit/symbols.rb +149 -149
  46. data/lib/makit/task_info.rb +79 -0
  47. data/lib/makit/tasks.rb +123 -68
  48. data/lib/makit/tree.rb +37 -37
  49. data/lib/makit/v1/makit.v1_pb.rb +34 -34
  50. data/lib/makit/v1/makit.v1_services_pb.rb +25 -25
  51. data/lib/makit/version.rb +65 -65
  52. data/lib/makit/wix.rb +95 -95
  53. data/lib/makit/yaml.rb +17 -17
  54. data/lib/makit/zip.rb +17 -17
  55. data/lib/makit.rb +267 -267
  56. metadata +7 -5
  57. data/lib/generated/makit/v1/makit.v1_pb.rb +0 -35
  58. data/lib/generated/makit/v1/web/link_pb.rb +0 -20
data/lib/makit/logging.rb CHANGED
@@ -1,106 +1,106 @@
1
- # frozen_string_literal: true
2
-
3
- require "logger"
4
- require "colorize"
5
- require_relative "symbols"
6
-
7
- # This module provides classes for the Makit gem.
8
- module Makit
9
- module Logging
10
- ANSI_COLOR_REGEX = /\e\[[0-9;]*m/
11
-
12
- def self.log_rake_duration
13
- # use the STARTTIME constant to log the duration of the rake task
14
- # to the log/rake.duration.txt file
15
- duration = Time.now - STARTTIME
16
- FileUtils.mkdir_p("log") unless Dir.exist?("log")
17
- File.open("log/rake.duration.txt", "a") do |file|
18
- file.puts "Rake task duration: #{duration} seconds"
19
- end
20
- end
21
-
22
- class PlainFormatter < Logger::Formatter
23
- def call(_severity, _time, _progname, msg)
24
- stripped_msg = msg.gsub(ANSI_COLOR_REGEX, "") # Remove ANSI color codes
25
- "#{stripped_msg}\n"
26
- end
27
- end
28
-
29
- class ColorFormatter < Logger::Formatter
30
- def call(_severity, _time, _progname, msg)
31
- "#{msg}\n"
32
- end
33
- end
34
-
35
- # This class provide methods for working with Directories/
36
- #
37
- # Example:
38
- #
39
- # Makit::Directory.find_directory_with_pattern("/home/user", "*.rb")
40
- #
41
- class MultiLogger
42
- def initialize(*targets)
43
- @targets = targets
44
- end
45
-
46
- def add(severity, message = nil, progname = nil, &block)
47
- @targets.each do |logger|
48
- logger.add(severity, message, progname, &block)
49
- logger.flush if logger.respond_to?(:flush)
50
- end
51
- end
52
-
53
- def <<(message)
54
- @targets.each do |logger|
55
- logger << message
56
- logger.flush if logger.respond_to?(:flush)
57
- end
58
- end
59
-
60
- def close
61
- @targets.each(&:close)
62
- end
63
-
64
- def method_missing(method, *args, &block)
65
- @targets.each { |logger| logger.send(method, *args, &block) }
66
- end
67
-
68
- def respond_to_missing?(method, include_private = false)
69
- @targets.all? { |logger| logger.respond_to?(method, include_private) }
70
- end
71
-
72
- def self.create_logger
73
- stdout_logger = Logger.new($stdout) # ColoredLogger.new(STDOUT)
74
- stdout_logger.level = Logger::DEBUG
75
- # Assign the custom formatter to the file_logger
76
- stdout_logger.formatter = ColorFormatter.new
77
-
78
- # if clean or clobber commands are used, then log ONLY to stdout
79
- if ARGV.include?("clean") || ARGV.include?("clobber")
80
- return stdout_logger
81
- end
82
- if Makit::Environment.project_root_directory.nil?
83
- logger = stdout_logger
84
- else
85
- #log_filename = if ARGV.empty?
86
- # "#{Makit::Environment.project_root_directory}/artifacts/rake.log"
87
- # else
88
- # "#{Makit::Environment.project_root_directory}/artifacts/rake_#{ARGV.join("_").gsub(":",
89
- # "_")}.log"
90
- # end
91
- # FileUtils.remove_file(log_file) if File.exist?(log_file)
92
- #FileUtils.mkdir_p(File.dirname(log_filename)) unless Dir.exist?(File.dirname(log_filename))
93
- #File.open(log_filename, "w")
94
- #file_logger = Logger.new(log_filename)
95
- #file_logger.level = Logger::DEBUG
96
- # Assign the custom formatter to the file_logger
97
- #file_logger.formatter = PlainFormatter.new
98
- #logger = MultiLogger.new(file_logger, stdout_logger)
99
- logger = stdout_logger
100
- end
101
-
102
- logger
103
- end
104
- end
105
- end
106
- end
1
+ # frozen_string_literal: true
2
+
3
+ require "logger"
4
+ require "colorize"
5
+ require_relative "symbols"
6
+
7
+ # This module provides classes for the Makit gem.
8
+ module Makit
9
+ module Logging
10
+ ANSI_COLOR_REGEX = /\e\[[0-9;]*m/
11
+
12
+ def self.log_rake_duration
13
+ # use the STARTTIME constant to log the duration of the rake task
14
+ # to the log/rake.duration.txt file
15
+ duration = Time.now - STARTTIME
16
+ FileUtils.mkdir_p("log") unless Dir.exist?("log")
17
+ File.open("log/rake.duration.txt", "a") do |file|
18
+ file.puts "Rake task duration: #{duration} seconds"
19
+ end
20
+ end
21
+
22
+ class PlainFormatter < Logger::Formatter
23
+ def call(_severity, _time, _progname, msg)
24
+ stripped_msg = msg.gsub(ANSI_COLOR_REGEX, "") # Remove ANSI color codes
25
+ "#{stripped_msg}\n"
26
+ end
27
+ end
28
+
29
+ class ColorFormatter < Logger::Formatter
30
+ def call(_severity, _time, _progname, msg)
31
+ "#{msg}\n"
32
+ end
33
+ end
34
+
35
+ # This class provide methods for working with Directories/
36
+ #
37
+ # Example:
38
+ #
39
+ # Makit::Directory.find_directory_with_pattern("/home/user", "*.rb")
40
+ #
41
+ class MultiLogger
42
+ def initialize(*targets)
43
+ @targets = targets
44
+ end
45
+
46
+ def add(severity, message = nil, progname = nil, &block)
47
+ @targets.each do |logger|
48
+ logger.add(severity, message, progname, &block)
49
+ logger.flush if logger.respond_to?(:flush)
50
+ end
51
+ end
52
+
53
+ def <<(message)
54
+ @targets.each do |logger|
55
+ logger << message
56
+ logger.flush if logger.respond_to?(:flush)
57
+ end
58
+ end
59
+
60
+ def close
61
+ @targets.each(&:close)
62
+ end
63
+
64
+ def method_missing(method, *args, &block)
65
+ @targets.each { |logger| logger.send(method, *args, &block) }
66
+ end
67
+
68
+ def respond_to_missing?(method, include_private = false)
69
+ @targets.all? { |logger| logger.respond_to?(method, include_private) }
70
+ end
71
+
72
+ def self.create_logger
73
+ stdout_logger = Logger.new($stdout) # ColoredLogger.new(STDOUT)
74
+ stdout_logger.level = Logger::DEBUG
75
+ # Assign the custom formatter to the file_logger
76
+ stdout_logger.formatter = ColorFormatter.new
77
+
78
+ # if clean or clobber commands are used, then log ONLY to stdout
79
+ if ARGV.include?("clean") || ARGV.include?("clobber")
80
+ return stdout_logger
81
+ end
82
+ if Makit::Environment.project_root_directory.nil?
83
+ logger = stdout_logger
84
+ else
85
+ #log_filename = if ARGV.empty?
86
+ # "#{Makit::Environment.project_root_directory}/artifacts/rake.log"
87
+ # else
88
+ # "#{Makit::Environment.project_root_directory}/artifacts/rake_#{ARGV.join("_").gsub(":",
89
+ # "_")}.log"
90
+ # end
91
+ # FileUtils.remove_file(log_file) if File.exist?(log_file)
92
+ #FileUtils.mkdir_p(File.dirname(log_filename)) unless Dir.exist?(File.dirname(log_filename))
93
+ #File.open(log_filename, "w")
94
+ #file_logger = Logger.new(log_filename)
95
+ #file_logger.level = Logger::DEBUG
96
+ # Assign the custom formatter to the file_logger
97
+ #file_logger.formatter = PlainFormatter.new
98
+ #logger = MultiLogger.new(file_logger, stdout_logger)
99
+ logger = stdout_logger
100
+ end
101
+
102
+ logger
103
+ end
104
+ end
105
+ end
106
+ end
@@ -1,75 +1,75 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "humanize"
4
-
5
- # This module provides classes for the Makit gem.
6
- module Makit
7
- class Markdown
8
- def self.get_commands_markdown(commands)
9
- summary = ""
10
- commands.each do |command|
11
- md = Makit::Markdown.get_command_markdown(command)
12
- summary += md
13
- end
14
- summary
15
- end
16
-
17
- def self.get_command_markdown(command)
18
- md = "<details>\n"
19
- md += "<summary>#{Makit::Humanize::get_command_summary(command)}</summary>\n\n"
20
-
21
- if command.output.length > 0
22
- md += "<table><tr><th>output</th></tr><tr><td>\n\n" #<pre>\n"
23
- md += "```shell\n"
24
- md += "#{command.output}\n"
25
- md += "```\n\n"
26
- md += "</td></tr></table>\n\n"
27
- #md += "output:\n"
28
- #md += "```shell\n"
29
- #md += "#{command.output}\n"
30
- #md += "```\n\n"
31
- end
32
- if command.error.length > 0
33
- md += "error:\n"
34
- md += "```shell\n"
35
- md += "#{command.error}\n"
36
- md += "```\n\n"
37
- end
38
- md += "| exit code | started at | duration | user | device | os | directory |\n"
39
- md += "| --- | --- | --- | --- | --- | --- | --- |\n"
40
- md += "| #{command.exit_code} | #{Makit::Humanize::get_protobuf_timestamp(command.started_at)} | #{Makit::Humanize::get_protobuf_duration(command.duration)} | #{command.user} | #{command.device} | #{command.os} | #{command.directory} |\n"
41
-
42
- #md += "| Name | Value |\n"
43
- #md += "| --- | --- |\n"
44
- #md += "| exit code | #{command.exit_code} |\n"
45
- #md += "| started at | #{Makit::Humanize::get_protobuf_timestamp(command.started_at)} |\n"
46
- #md += "| duration | #{Makit::Humanize::get_protobuf_duration(command.duration)} |\n"
47
- #md += "| user | #{command.user} |\n"
48
- #md += "| device | #{command.device} |\n"
49
- #md += "| os | #{command.os} |\n"
50
- #md += "| directory | #{command.directory} |\n"
51
- md += "</details>\n"
52
- md
53
- end
54
-
55
- def self.get_make_result_markdown(make_result)
56
- md = "# Make Result\n"
57
- # display allow of the fields of the MakeResult message
58
- md += "| Name | Value |\n"
59
- md += "| --- | --- |\n"
60
- md += "| repository | #{make_result.repository} |\n"
61
- md += "| commit | #{make_result.commit} |\n"
62
- md += "| branch | #{make_result.branch} |\n"
63
- md += "| tag | #{make_result.tag} |\n"
64
- md += "| device | #{make_result.device} |\n"
65
- md += "| runtime identifier | #{make_result.runtime_identifier} |\n"
66
- md += "| initial size | #{make_result.initial_size} |\n"
67
- md += "| final size | #{make_result.final_size} |\n"
68
- md += "\n"
69
- md += "## Commands\n"
70
- make_result.commands.each do |command|
71
- md += Makit::Markdown.get_command_markdown(command)
72
- end
73
- end
74
- end
75
- end
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "humanize"
4
+
5
+ # This module provides classes for the Makit gem.
6
+ module Makit
7
+ class Markdown
8
+ def self.get_commands_markdown(commands)
9
+ summary = ""
10
+ commands.each do |command|
11
+ md = Makit::Markdown.get_command_markdown(command)
12
+ summary += md
13
+ end
14
+ summary
15
+ end
16
+
17
+ def self.get_command_markdown(command)
18
+ md = "<details>\n"
19
+ md += "<summary>#{Makit::Humanize::get_command_summary(command)}</summary>\n\n"
20
+
21
+ if command.output.length > 0
22
+ md += "<table><tr><th>output</th></tr><tr><td>\n\n" #<pre>\n"
23
+ md += "```shell\n"
24
+ md += "#{command.output}\n"
25
+ md += "```\n\n"
26
+ md += "</td></tr></table>\n\n"
27
+ #md += "output:\n"
28
+ #md += "```shell\n"
29
+ #md += "#{command.output}\n"
30
+ #md += "```\n\n"
31
+ end
32
+ if command.error.length > 0
33
+ md += "error:\n"
34
+ md += "```shell\n"
35
+ md += "#{command.error}\n"
36
+ md += "```\n\n"
37
+ end
38
+ md += "| exit code | started at | duration | user | device | os | directory |\n"
39
+ md += "| --- | --- | --- | --- | --- | --- | --- |\n"
40
+ md += "| #{command.exit_code} | #{Makit::Humanize::get_protobuf_timestamp(command.started_at)} | #{Makit::Humanize::get_protobuf_duration(command.duration)} | #{command.user} | #{command.device} | #{command.os} | #{command.directory} |\n"
41
+
42
+ #md += "| Name | Value |\n"
43
+ #md += "| --- | --- |\n"
44
+ #md += "| exit code | #{command.exit_code} |\n"
45
+ #md += "| started at | #{Makit::Humanize::get_protobuf_timestamp(command.started_at)} |\n"
46
+ #md += "| duration | #{Makit::Humanize::get_protobuf_duration(command.duration)} |\n"
47
+ #md += "| user | #{command.user} |\n"
48
+ #md += "| device | #{command.device} |\n"
49
+ #md += "| os | #{command.os} |\n"
50
+ #md += "| directory | #{command.directory} |\n"
51
+ md += "</details>\n"
52
+ md
53
+ end
54
+
55
+ def self.get_make_result_markdown(make_result)
56
+ md = "# Make Result\n"
57
+ # display allow of the fields of the MakeResult message
58
+ md += "| Name | Value |\n"
59
+ md += "| --- | --- |\n"
60
+ md += "| repository | #{make_result.repository} |\n"
61
+ md += "| commit | #{make_result.commit} |\n"
62
+ md += "| branch | #{make_result.branch} |\n"
63
+ md += "| tag | #{make_result.tag} |\n"
64
+ md += "| device | #{make_result.device} |\n"
65
+ md += "| runtime identifier | #{make_result.runtime_identifier} |\n"
66
+ md += "| initial size | #{make_result.initial_size} |\n"
67
+ md += "| final size | #{make_result.final_size} |\n"
68
+ md += "\n"
69
+ md += "## Commands\n"
70
+ make_result.commands.each do |command|
71
+ md += Makit::Markdown.get_command_markdown(command)
72
+ end
73
+ end
74
+ end
75
+ end
@@ -1,16 +1,16 @@
1
- # frozen_string_literal: true
2
- require "json"
3
- require "yaml"
4
-
5
- # monkey patch String class with a run method
6
-
7
- class BasicObject
8
- def to_json
9
- self.to_json
10
- end
11
-
12
- def to_pretty_json
13
- json = self.to_json
14
- ::JSON.pretty_generate(::JSON.parse(json))
15
- end
16
- end # class BasicObject
1
+ # frozen_string_literal: true
2
+ require "json"
3
+ require "yaml"
4
+
5
+ # monkey patch String class with a run method
6
+
7
+ class BasicObject
8
+ def to_json
9
+ self.to_json
10
+ end
11
+
12
+ def to_pretty_json
13
+ json = self.to_json
14
+ ::JSON.pretty_generate(::JSON.parse(json))
15
+ end
16
+ end # class BasicObject
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ module V1
5
+ class Command
6
+ def to_markdown
7
+ md = "## " + self.name + " " + self.arguments.join(" ") + "\n\n"
8
+ md += "```\n" + self.output + "\n```\n"
9
+ md
10
+ end
11
+ end # class Command
12
+ end # module V1
13
+ end # module Makit
@@ -1,16 +1,16 @@
1
- # frozen_string_literal: true
2
- require "digest"
3
-
4
- module Makit
5
- module V1
6
- #class CommandRequest
7
- # def to_hash
8
- # int_hash = Digest::SHA256.hexdigest("{self.name}.#{self.arguments.join(" ")}")
9
- # int_hash
10
- # end
11
- # def to_hash_string
12
- # hash_string = "#{int_hash}"
13
- # end
14
- # end
15
- end
16
- end # module Makit
1
+ # frozen_string_literal: true
2
+ require "digest"
3
+
4
+ module Makit
5
+ module V1
6
+ #class CommandRequest
7
+ # def to_hash
8
+ # int_hash = Digest::SHA256.hexdigest("{self.name}.#{self.arguments.join(" ")}")
9
+ # int_hash
10
+ # end
11
+ # def to_hash_string
12
+ # hash_string = "#{int_hash}"
13
+ # end
14
+ # end
15
+ end
16
+ end # module Makit