makit 0.0.83 → 0.0.84

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generated/makit/v1/makit.v1_pb.rb +35 -0
  3. data/lib/generated/makit/v1/web/link_pb.rb +20 -0
  4. data/lib/makit/apache.rb +32 -32
  5. data/lib/makit/cli/clean.rb +14 -14
  6. data/lib/makit/cli/clone.rb +59 -59
  7. data/lib/makit/cli/init.rb +38 -38
  8. data/lib/makit/cli/main.rb +33 -33
  9. data/lib/makit/cli/make.rb +54 -54
  10. data/lib/makit/cli/new.rb +37 -37
  11. data/lib/makit/cli/nuget_cache.rb +38 -38
  12. data/lib/makit/cli/pull.rb +31 -31
  13. data/lib/makit/cli/setup.rb +71 -71
  14. data/lib/makit/cli/work.rb +21 -21
  15. data/lib/makit/command_runner.rb +404 -404
  16. data/lib/makit/commands.rb +21 -21
  17. data/lib/makit/content/default_gitignore.rb +5 -5
  18. data/lib/makit/content/default_gitignore.txt +222 -222
  19. data/lib/makit/content/default_rakefile.rb +11 -11
  20. data/lib/makit/content/gem_rakefile.rb +14 -14
  21. data/lib/makit/data.rb +50 -50
  22. data/lib/makit/directories.rb +144 -144
  23. data/lib/makit/directory.rb +264 -264
  24. data/lib/makit/docs/files.rb +94 -94
  25. data/lib/makit/docs/rake.rb +106 -106
  26. data/lib/makit/dotnet.rb +219 -219
  27. data/lib/makit/email.rb +61 -61
  28. data/lib/makit/environment.rb +131 -131
  29. data/lib/makit/fileinfo.rb +26 -26
  30. data/lib/makit/files.rb +47 -47
  31. data/lib/makit/git.rb +145 -145
  32. data/lib/makit/gitlab_runner.rb +60 -60
  33. data/lib/makit/humanize.rb +129 -129
  34. data/lib/makit/indexer.rb +56 -56
  35. data/lib/makit/logging.rb +106 -106
  36. data/lib/makit/markdown.rb +75 -75
  37. data/lib/makit/mp/basic_object_mp.rb +16 -16
  38. data/lib/makit/mp/command_mp.rb +13 -13
  39. data/lib/makit/mp/command_request.mp.rb +16 -16
  40. data/lib/makit/mp/project_mp.rb +210 -210
  41. data/lib/makit/mp/string_mp.rb +137 -137
  42. data/lib/makit/nuget.rb +72 -72
  43. data/lib/makit/process.rb +26 -26
  44. data/lib/makit/protoc.rb +104 -104
  45. data/lib/makit/rake.rb +25 -25
  46. data/lib/makit/secrets.rb +51 -51
  47. data/lib/makit/serializer.rb +115 -115
  48. data/lib/makit/show.rb +110 -110
  49. data/lib/makit/storage.rb +131 -131
  50. data/lib/makit/symbols.rb +149 -149
  51. data/lib/makit/task_info.rb +86 -86
  52. data/lib/makit/tasks.rb +144 -144
  53. data/lib/makit/tree.rb +37 -37
  54. data/lib/makit/v1/makit.v1_services_pb.rb +25 -25
  55. data/lib/makit/version.rb +64 -65
  56. data/lib/makit/wix.rb +95 -95
  57. data/lib/makit/yaml.rb +17 -17
  58. data/lib/makit/zip.rb +17 -17
  59. data/lib/makit.rb +267 -267
  60. metadata +5 -3
data/lib/makit/indexer.rb CHANGED
@@ -1,56 +1,56 @@
1
- # frozen_string_literal: true
2
-
3
- # This module provides classes for the Makit gem.
4
- module Makit
5
- # This class provide methods for indexing objects.
6
- #
7
- class Indexer
8
- attr_accessor :keywords_index # Hash of string key to string[] of keyword
9
- attr_accessor :protoc_json_serializer
10
-
11
- def initialize
12
- @keywords_index = Hash.new
13
- @protoc_json_serializer = Makit::Serializer::new(Makit::Proto3Formats::JSON)
14
- end
15
-
16
- def index(key, item)
17
- # item must be serializable to json
18
- keywords = []
19
- hash = JSON.parse(item.to_json)
20
- hash.each do |key, value|
21
- value = value.to_s.downcase
22
- if (value.length >= 3 && !keywords.include?(value))
23
- keywords << value
24
- end
25
- end
26
- keywords.each do |keyword|
27
- if !@keywords_index.key?(keyword)
28
- @keywords_index[keyword] = []
29
- end
30
- @keywords_index[keyword] << key unless @keywords_index[keyword].include?(key)
31
- end
32
- end
33
-
34
- def search(query)
35
- keys = []
36
- # todo, remove terms less that length of 3
37
- terms = query.downcase.split(" ").reject { |term| term.length < 3 }
38
- keywords_index.each do |key, value| #{|kvp|
39
- if (get_match_count(terms, value) == terms.length)
40
- keys << key
41
- end
42
- end
43
- keys
44
- end
45
-
46
- def get_match_count(terms, keywords)
47
- match_count = 0
48
- terms.each { |term|
49
- if (keywords.include?(term))
50
- match_count += 1
51
- end
52
- }
53
- return match_count
54
- end
55
- end # class Indexer
56
- end # module Makit
1
+ # frozen_string_literal: true
2
+
3
+ # This module provides classes for the Makit gem.
4
+ module Makit
5
+ # This class provide methods for indexing objects.
6
+ #
7
+ class Indexer
8
+ attr_accessor :keywords_index # Hash of string key to string[] of keyword
9
+ attr_accessor :protoc_json_serializer
10
+
11
+ def initialize
12
+ @keywords_index = Hash.new
13
+ @protoc_json_serializer = Makit::Serializer::new(Makit::Proto3Formats::JSON)
14
+ end
15
+
16
+ def index(key, item)
17
+ # item must be serializable to json
18
+ keywords = []
19
+ hash = JSON.parse(item.to_json)
20
+ hash.each do |key, value|
21
+ value = value.to_s.downcase
22
+ if (value.length >= 3 && !keywords.include?(value))
23
+ keywords << value
24
+ end
25
+ end
26
+ keywords.each do |keyword|
27
+ if !@keywords_index.key?(keyword)
28
+ @keywords_index[keyword] = []
29
+ end
30
+ @keywords_index[keyword] << key unless @keywords_index[keyword].include?(key)
31
+ end
32
+ end
33
+
34
+ def search(query)
35
+ keys = []
36
+ # todo, remove terms less that length of 3
37
+ terms = query.downcase.split(" ").reject { |term| term.length < 3 }
38
+ keywords_index.each do |key, value| #{|kvp|
39
+ if (get_match_count(terms, value) == terms.length)
40
+ keys << key
41
+ end
42
+ end
43
+ keys
44
+ end
45
+
46
+ def get_match_count(terms, keywords)
47
+ match_count = 0
48
+ terms.each { |term|
49
+ if (keywords.include?(term))
50
+ match_count += 1
51
+ end
52
+ }
53
+ return match_count
54
+ end
55
+ end # class Indexer
56
+ end # module Makit
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
@@ -1,13 +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
+ # 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