makit 0.0.94 → 0.0.96

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 (61) 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_gitignore.txt +222 -222
  17. data/lib/makit/content/default_rakefile.rb +11 -11
  18. data/lib/makit/content/gem_rakefile.rb +14 -14
  19. data/lib/makit/data.rb +50 -50
  20. data/lib/makit/directories.rb +145 -145
  21. data/lib/makit/directory.rb +264 -264
  22. data/lib/makit/docs/files.rb +94 -94
  23. data/lib/makit/docs/rake.rb +106 -106
  24. data/lib/makit/dotnet.rb +219 -219
  25. data/lib/makit/email.rb +61 -61
  26. data/lib/makit/environment.rb +139 -139
  27. data/lib/makit/fileinfo.rb +26 -26
  28. data/lib/makit/files.rb +47 -47
  29. data/lib/makit/git.rb +145 -145
  30. data/lib/makit/gitlab_runner.rb +60 -60
  31. data/lib/makit/humanize.rb +129 -129
  32. data/lib/makit/indexer.rb +56 -56
  33. data/lib/makit/logging.rb +106 -106
  34. data/lib/makit/markdown.rb +75 -75
  35. data/lib/makit/mp/basic_object_mp.rb +16 -16
  36. data/lib/makit/mp/command_mp.rb +13 -13
  37. data/lib/makit/mp/command_request.mp.rb +16 -16
  38. data/lib/makit/mp/project_mp.rb +210 -210
  39. data/lib/makit/mp/string_mp.rb +176 -169
  40. data/lib/makit/nuget.rb +72 -72
  41. data/lib/makit/port.rb +33 -33
  42. data/lib/makit/process.rb +65 -65
  43. data/lib/makit/protoc.rb +104 -104
  44. data/lib/makit/rake.rb +25 -25
  45. data/lib/makit/secrets.rb +51 -51
  46. data/lib/makit/serializer.rb +115 -115
  47. data/lib/makit/show.rb +110 -110
  48. data/lib/makit/storage.rb +131 -131
  49. data/lib/makit/symbols.rb +149 -149
  50. data/lib/makit/task_info.rb +86 -86
  51. data/lib/makit/tasks.rb +150 -150
  52. data/lib/makit/tree.rb +37 -37
  53. data/lib/makit/v1/makit.v1_services_pb.rb +25 -25
  54. data/lib/makit/version.rb +64 -64
  55. data/lib/makit/wix.rb +95 -95
  56. data/lib/makit/yaml.rb +17 -17
  57. data/lib/makit/zip.rb +17 -17
  58. data/lib/makit.rb +267 -267
  59. metadata +9 -28
  60. data/lib/generated/makit/v1/makit.v1_pb.rb +0 -35
  61. data/lib/generated/makit/v1/web/link_pb.rb +0 -20
@@ -1,169 +1,176 @@
1
- # frozen_string_literal: true
2
- require "json"
3
- # monkey patch String class with a run method
4
-
5
- class String
6
- def run(args = nil)
7
- if args.nil?
8
- command = self
9
- Makit::RUNNER.run(Makit::RUNNER::parse_command_request(command))
10
- else
11
- command = self
12
- request = Makit::RUNNER.parse_args(command)
13
- if args.is_a?(Hash)
14
- args.each do |key, value|
15
- request.send("#{key}=", value)
16
- end
17
- end
18
- Makit::RUNNER.run(request)
19
- end
20
- end
21
-
22
- def cache_run()
23
- command = self
24
- Makit::RUNNER.cache_run(Makit::RUNNER::parse_command_request(command))
25
- end
26
-
27
- def cache_run(timestamp = nil)
28
- if timestamp.nil?
29
- timestamp = Makit::GIT_FILE_INFOS.first.mtime #GIT_FILE_INFOS. Makit::Directory.get_newest_git_file_timestamp(Makit::Directories::PROJECT_ROOT)
30
- #timestamp = Makit::Timestamp.now
31
- end
32
-
33
- command = self
34
- Makit::RUNNER.cache_run(Makit::RUNNER::parse_command_request(command), timestamp)
35
- end
36
-
37
- def try(args = nil)
38
- if args.nil?
39
- command = self
40
- Makit::RUNNER.try(command)
41
- else
42
- command = self
43
- request = Makit::RUNNER.parse_args(command)
44
- if args.is_a?(Hash)
45
- args.each do |key, value|
46
- request.send("#{key}=", value)
47
- end
48
- end
49
- Makit::RUNNER.try(request)
50
- end
51
- end
52
-
53
- def show(args = nil)
54
- if args.nil?
55
- command = self
56
- Makit::RUNNER.show(command)
57
- else
58
- command = self
59
- request = Makit::RUNNER.parse_args(command)
60
- if args.is_a?(Hash)
61
- args.each do |key, value|
62
- request.send("#{key}=", value)
63
- end
64
- end
65
- Makit::RUNNER.show(request)
66
- end
67
- end
68
- def log(filename)
69
- # does the filename have a directory?
70
- if self.include?("/")
71
- # get the directory
72
- directory = self.split("/")[0..-2].join("/")
73
- # create the directory
74
- FileUtils.mkdir_p(directory)
75
- end
76
- command = self
77
- cmd = Makit::RUNNER.run(Makit::RUNNER::parse_command_request(command))
78
- # write the cmd output and error to the file
79
- File.write(filename, cmd.output + cmd.error)
80
-
81
- # display the summary of the command
82
- Makit::RUNNER.show_command(cmd)
83
- end
84
-
85
- def cache_try()
86
- command = self
87
- Makit::RUNNER.cache_try(Makit::RUNNER::parse_command_request(command))
88
- end
89
-
90
- def cache_try(timestamp = nil)
91
- if timestamp.nil?
92
- timestamp = Makit::GIT_FILE_INFOS.first.mtime #GIT_FILE_INFOS. Makit::Directory.get_newest_git_file_timestamp(Makit::Directories::PROJECT_ROOT)
93
- #timestamp = Makit::Timestamp.now
94
- end
95
-
96
- command = self
97
- Makit::RUNNER.cache_try(Makit::RUNNER::parse_command_request(command), timestamp)
98
- end
99
-
100
- # Read a value from a JSON file
101
- # key is a string with the key to read, e.g. "AzureAd.Authority"
102
- def get_json_value(key)
103
- json = File.read(self)
104
- data = JSON.parse(json)
105
-
106
- # key delimiter is '.' so we can access nested keys
107
- key.split(".").each do |k|
108
- data = data[k]
109
- end
110
- data
111
- end
112
-
113
- alias_method :retrieve, :get_json_value
114
-
115
- # Set a value in a JSON file
116
- # key is a string with the key to set, e.g. "AzureAd.Authority"
117
- def set_json_value(key, value)
118
- file = File.read(self)
119
- data = JSON.parse(file)
120
- keys = key.split(".")
121
- current = data
122
-
123
- # Traverse and create any missing keys
124
- keys[0..-2].each do |k|
125
- current[k] ||= {} # Create a new hash if the key doesn't exist
126
- current = current[k]
127
- end
128
-
129
- # Set the value for the final key
130
- current[keys[-1]] = value
131
-
132
- # Write the JSON back to the file
133
- File.write(self, JSON.pretty_generate(data))
134
- end
135
-
136
- # Alias for set_json_value
137
- alias_method :assign, :set_json_value
138
-
139
- def strip_color_codes
140
- # Regular expression to remove ANSI color codes
141
- cleaned_content = self.gsub(/\e\[[\d;]+m/, "")
142
- cleaned_content
143
- end
144
-
145
- def to_lines(max_length = 80, indent_length = 5)
146
- if (self.length <= max_length)
147
- return self
148
- else
149
- indent = " " * indent_length
150
- words = self.split(" ")
151
- lines = []
152
- line = ""
153
- words.each do |word|
154
- if ((line + word).length > max_length)
155
- lines << line
156
- line = indent + word
157
- else
158
- if (line.length == 0)
159
- line = word
160
- else
161
- line += " " + word
162
- end
163
- end
164
- end
165
- lines << line
166
- return lines.join("\n")
167
- end
168
- end
169
- end
1
+ # frozen_string_literal: true
2
+ require "json"
3
+ # monkey patch String class with a run method
4
+
5
+ class String
6
+ def run(args = nil)
7
+ if args.nil?
8
+ command = self
9
+ Makit::RUNNER.run(Makit::RUNNER::parse_command_request(command))
10
+ else
11
+ command = self
12
+ request = Makit::RUNNER.parse_args(command)
13
+ if args.is_a?(Hash)
14
+ args.each do |key, value|
15
+ request.send("#{key}=", value)
16
+ end
17
+ end
18
+ Makit::RUNNER.run(request)
19
+ end
20
+ end
21
+
22
+ def cache_run()
23
+ command = self
24
+ Makit::RUNNER.cache_run(Makit::RUNNER::parse_command_request(command))
25
+ end
26
+
27
+ def cache_run(timestamp = nil)
28
+ if timestamp.nil?
29
+ timestamp = Makit::GIT_FILE_INFOS.first.mtime #GIT_FILE_INFOS. Makit::Directory.get_newest_git_file_timestamp(Makit::Directories::PROJECT_ROOT)
30
+ #timestamp = Makit::Timestamp.now
31
+ end
32
+
33
+ command = self
34
+ Makit::RUNNER.cache_run(Makit::RUNNER::parse_command_request(command), timestamp)
35
+ end
36
+
37
+ def try(args = nil)
38
+ if args.nil?
39
+ command = self
40
+ Makit::RUNNER.try(command)
41
+ else
42
+ command = self
43
+ request = Makit::RUNNER.parse_args(command)
44
+ if args.is_a?(Hash)
45
+ args.each do |key, value|
46
+ request.send("#{key}=", value)
47
+ end
48
+ end
49
+ Makit::RUNNER.try(request)
50
+ end
51
+ end
52
+
53
+ def show(args = nil)
54
+ if args.nil?
55
+ command = self
56
+ Makit::RUNNER.show(command)
57
+ else
58
+ command = self
59
+ request = Makit::RUNNER.parse_args(command)
60
+ if args.is_a?(Hash)
61
+ args.each do |key, value|
62
+ request.send("#{key}=", value)
63
+ end
64
+ end
65
+ Makit::RUNNER.show(request)
66
+ end
67
+ end
68
+ def log(filename)
69
+ #puts "Logging to file: #{filename}"
70
+ # does the filename have a directory?
71
+ if filename.include?("/")
72
+ # get the directory
73
+ directory = File.dirname(filename)
74
+ # create the directory
75
+ #puts "Creating directory: #{directory}"
76
+ FileUtils.mkdir_p(directory)
77
+ end
78
+ command = self
79
+
80
+ cmd = Makit::RUNNER.run(Makit::RUNNER::parse_command_request(command))
81
+ # write the cmd output and error to the file
82
+ #puts "Writing to file: #{filename}"
83
+ File.write(filename, cmd.output + cmd.error)
84
+
85
+ # display the summary of the command
86
+ #puts "Command: #{command}"
87
+ #puts "Output: #{cmd.output}"
88
+ #puts "Error: #{cmd.error}"
89
+ Makit::RUNNER.show_command(cmd)
90
+ end
91
+
92
+ def cache_try()
93
+ command = self
94
+ Makit::RUNNER.cache_try(Makit::RUNNER::parse_command_request(command))
95
+ end
96
+
97
+ def cache_try(timestamp = nil)
98
+ if timestamp.nil?
99
+ timestamp = Makit::GIT_FILE_INFOS.first.mtime #GIT_FILE_INFOS. Makit::Directory.get_newest_git_file_timestamp(Makit::Directories::PROJECT_ROOT)
100
+ #timestamp = Makit::Timestamp.now
101
+ end
102
+
103
+ command = self
104
+ Makit::RUNNER.cache_try(Makit::RUNNER::parse_command_request(command), timestamp)
105
+ end
106
+
107
+ # Read a value from a JSON file
108
+ # key is a string with the key to read, e.g. "AzureAd.Authority"
109
+ def get_json_value(key)
110
+ json = File.read(self)
111
+ data = JSON.parse(json)
112
+
113
+ # key delimiter is '.' so we can access nested keys
114
+ key.split(".").each do |k|
115
+ data = data[k]
116
+ end
117
+ data
118
+ end
119
+
120
+ alias_method :retrieve, :get_json_value
121
+
122
+ # Set a value in a JSON file
123
+ # key is a string with the key to set, e.g. "AzureAd.Authority"
124
+ def set_json_value(key, value)
125
+ file = File.read(self)
126
+ data = JSON.parse(file)
127
+ keys = key.split(".")
128
+ current = data
129
+
130
+ # Traverse and create any missing keys
131
+ keys[0..-2].each do |k|
132
+ current[k] ||= {} # Create a new hash if the key doesn't exist
133
+ current = current[k]
134
+ end
135
+
136
+ # Set the value for the final key
137
+ current[keys[-1]] = value
138
+
139
+ # Write the JSON back to the file
140
+ File.write(self, JSON.pretty_generate(data))
141
+ end
142
+
143
+ # Alias for set_json_value
144
+ alias_method :assign, :set_json_value
145
+
146
+ def strip_color_codes
147
+ # Regular expression to remove ANSI color codes
148
+ cleaned_content = self.gsub(/\e\[[\d;]+m/, "")
149
+ cleaned_content
150
+ end
151
+
152
+ def to_lines(max_length = 80, indent_length = 5)
153
+ if (self.length <= max_length)
154
+ return self
155
+ else
156
+ indent = " " * indent_length
157
+ words = self.split(" ")
158
+ lines = []
159
+ line = ""
160
+ words.each do |word|
161
+ if ((line + word).length > max_length)
162
+ lines << line
163
+ line = indent + word
164
+ else
165
+ if (line.length == 0)
166
+ line = word
167
+ else
168
+ line += " " + word
169
+ end
170
+ end
171
+ end
172
+ lines << line
173
+ return lines.join("\n")
174
+ end
175
+ end
176
+ end
data/lib/makit/nuget.rb CHANGED
@@ -1,72 +1,72 @@
1
- require "tmpdir"
2
- # This module provides classes for the Makit gem.
3
- module Makit
4
- # This class provide methods for working with the Nuget package cache
5
- #
6
- # Example:
7
- #
8
- # Makit::Directory.cache("Google.Protobuf", "3.27.2")
9
- #
10
- # dotnet nuget locals all --list
11
- # dotnet nuget locals all --clear
12
- #
13
- class NuGet
14
- def self.get_cache_dir(package, version)
15
- File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package, version)
16
- end
17
-
18
- def self.cache(package, version)
19
- # if the package is already cached, there is nothing to do
20
- if (!Dir.exist?(get_cache_dir(package, version)))
21
- Dir.mktmpdir do |dir|
22
- # Use the temp directory here
23
- Dir.chdir(dir) do
24
- system("dotnet new classlib -n ClassLib")
25
- Dir.chdir("ClassLib") do
26
-
27
- # display a list of directories in the current directory
28
- puts Dir.entries(Dir.pwd)
29
- # display a list of files in the current directory
30
- puts Dir.entries(Dir.pwd)
31
- puts "dotnet add ClassLib.csproj package #{package} --version #{version}"
32
- system("dotnet add ClassLib.csproj package #{package} --version #{version}")
33
- end
34
- end
35
- # The directory and its contents will be removed automatically after the block
36
- end
37
- end
38
- end
39
-
40
- def self.clear_cache(package, version)
41
- if (Dir.exist?(get_cache_dir(package, version)))
42
- FileUtils.rm_rf(get_cache_dir(package, version))
43
- end
44
- end
45
-
46
- # get the latest version of the package
47
- def self.get_latest_version(package)
48
- dir = File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package)
49
- if (Dir.exist?(dir))
50
- versions = Dir.entries(dir).select { |entry| File.directory?(File.join(dir, entry)) && !(entry == "." || entry == "..") }
51
- highest_version = Makit::Version::get_highest_version(versions)
52
- return highest_version
53
- end
54
- nil
55
- end
56
-
57
- # publish a package to a nuget directory feed
58
- def self.add_package(package, path)
59
- system("dotnet nuget push #{path} --source #{path}")
60
- end
61
-
62
- def self.publish_to_directory(nuget_package_path,directory,package_name,version)
63
- target_package_path = "#{directory}/#{package_name}/#{version}/#{package_name}.#{version}.nupkg".downcase
64
- if (File.exist?(target_package_path))
65
- puts " #{target_package_path} already exists".colorize(:grey)
66
- else
67
- "dotnet nuget push #{nuget_package_path} --source #{directory}".run
68
- end
69
- end
70
-
71
- end
72
- end
1
+ require "tmpdir"
2
+ # This module provides classes for the Makit gem.
3
+ module Makit
4
+ # This class provide methods for working with the Nuget package cache
5
+ #
6
+ # Example:
7
+ #
8
+ # Makit::Directory.cache("Google.Protobuf", "3.27.2")
9
+ #
10
+ # dotnet nuget locals all --list
11
+ # dotnet nuget locals all --clear
12
+ #
13
+ class NuGet
14
+ def self.get_cache_dir(package, version)
15
+ File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package, version)
16
+ end
17
+
18
+ def self.cache(package, version)
19
+ # if the package is already cached, there is nothing to do
20
+ if (!Dir.exist?(get_cache_dir(package, version)))
21
+ Dir.mktmpdir do |dir|
22
+ # Use the temp directory here
23
+ Dir.chdir(dir) do
24
+ system("dotnet new classlib -n ClassLib")
25
+ Dir.chdir("ClassLib") do
26
+
27
+ # display a list of directories in the current directory
28
+ puts Dir.entries(Dir.pwd)
29
+ # display a list of files in the current directory
30
+ puts Dir.entries(Dir.pwd)
31
+ puts "dotnet add ClassLib.csproj package #{package} --version #{version}"
32
+ system("dotnet add ClassLib.csproj package #{package} --version #{version}")
33
+ end
34
+ end
35
+ # The directory and its contents will be removed automatically after the block
36
+ end
37
+ end
38
+ end
39
+
40
+ def self.clear_cache(package, version)
41
+ if (Dir.exist?(get_cache_dir(package, version)))
42
+ FileUtils.rm_rf(get_cache_dir(package, version))
43
+ end
44
+ end
45
+
46
+ # get the latest version of the package
47
+ def self.get_latest_version(package)
48
+ dir = File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package)
49
+ if (Dir.exist?(dir))
50
+ versions = Dir.entries(dir).select { |entry| File.directory?(File.join(dir, entry)) && !(entry == "." || entry == "..") }
51
+ highest_version = Makit::Version::get_highest_version(versions)
52
+ return highest_version
53
+ end
54
+ nil
55
+ end
56
+
57
+ # publish a package to a nuget directory feed
58
+ def self.add_package(package, path)
59
+ system("dotnet nuget push #{path} --source #{path}")
60
+ end
61
+
62
+ def self.publish_to_directory(nuget_package_path,directory,package_name,version)
63
+ target_package_path = "#{directory}/#{package_name}/#{version}/#{package_name}.#{version}.nupkg".downcase
64
+ if (File.exist?(target_package_path))
65
+ puts " #{target_package_path} already exists".colorize(:grey)
66
+ else
67
+ "dotnet nuget push #{nuget_package_path} --source #{directory}".run
68
+ end
69
+ end
70
+
71
+ end
72
+ end
data/lib/makit/port.rb CHANGED
@@ -1,34 +1,34 @@
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
- begin
10
- socket = Socket.new(:INET, :STREAM)
11
- socket.bind(Socket.sockaddr_in(port, ''))
12
- socket.close
13
- return true # Port is available for use
14
- rescue Errno::EADDRINUSE, Errno::EACCES
15
- return false # Port is not available for use
16
- end
17
- end
18
-
19
- def self.get_available_port(start_port = 1024, end_port = 65535)
20
- (start_port..end_port).each do |port|
21
- return port if is_port_available?(port)
22
- end
23
- nil # No available port found in the range
24
- end
25
-
26
- def self.get_random_port
27
- rand(1024..65535)
28
- end
29
-
30
- def self.get_random_available_port
31
- get_available_port(get_random_port)
32
- end
33
- end # class Port
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
+ begin
10
+ socket = Socket.new(:INET, :STREAM)
11
+ socket.bind(Socket.sockaddr_in(port, ''))
12
+ socket.close
13
+ return true # Port is available for use
14
+ rescue Errno::EADDRINUSE, Errno::EACCES
15
+ return false # Port is not available for use
16
+ end
17
+ end
18
+
19
+ def self.get_available_port(start_port = 1024, end_port = 65535)
20
+ (start_port..end_port).each do |port|
21
+ return port if is_port_available?(port)
22
+ end
23
+ nil # No available port found in the range
24
+ end
25
+
26
+ def self.get_random_port
27
+ rand(1024..65535)
28
+ end
29
+
30
+ def self.get_random_available_port
31
+ get_available_port(get_random_port)
32
+ end
33
+ end # class Port
34
34
  end # module Makit