makit 0.0.93 → 0.0.95

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 -175
  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,175 +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.stdout + cmd.stderr)
80
-
81
- # display the summary of the command
82
- if(cmd.exit_code == 0)
83
- puts cmd.summary
84
- else
85
- puts cmd.summary
86
- puts cmd.stdout
87
- puts cmd.stderr
88
- end
89
- end
90
-
91
- def cache_try()
92
- command = self
93
- Makit::RUNNER.cache_try(Makit::RUNNER::parse_command_request(command))
94
- end
95
-
96
- def cache_try(timestamp = nil)
97
- if timestamp.nil?
98
- timestamp = Makit::GIT_FILE_INFOS.first.mtime #GIT_FILE_INFOS. Makit::Directory.get_newest_git_file_timestamp(Makit::Directories::PROJECT_ROOT)
99
- #timestamp = Makit::Timestamp.now
100
- end
101
-
102
- command = self
103
- Makit::RUNNER.cache_try(Makit::RUNNER::parse_command_request(command), timestamp)
104
- end
105
-
106
- # Read a value from a JSON file
107
- # key is a string with the key to read, e.g. "AzureAd.Authority"
108
- def get_json_value(key)
109
- json = File.read(self)
110
- data = JSON.parse(json)
111
-
112
- # key delimiter is '.' so we can access nested keys
113
- key.split(".").each do |k|
114
- data = data[k]
115
- end
116
- data
117
- end
118
-
119
- alias_method :retrieve, :get_json_value
120
-
121
- # Set a value in a JSON file
122
- # key is a string with the key to set, e.g. "AzureAd.Authority"
123
- def set_json_value(key, value)
124
- file = File.read(self)
125
- data = JSON.parse(file)
126
- keys = key.split(".")
127
- current = data
128
-
129
- # Traverse and create any missing keys
130
- keys[0..-2].each do |k|
131
- current[k] ||= {} # Create a new hash if the key doesn't exist
132
- current = current[k]
133
- end
134
-
135
- # Set the value for the final key
136
- current[keys[-1]] = value
137
-
138
- # Write the JSON back to the file
139
- File.write(self, JSON.pretty_generate(data))
140
- end
141
-
142
- # Alias for set_json_value
143
- alias_method :assign, :set_json_value
144
-
145
- def strip_color_codes
146
- # Regular expression to remove ANSI color codes
147
- cleaned_content = self.gsub(/\e\[[\d;]+m/, "")
148
- cleaned_content
149
- end
150
-
151
- def to_lines(max_length = 80, indent_length = 5)
152
- if (self.length <= max_length)
153
- return self
154
- else
155
- indent = " " * indent_length
156
- words = self.split(" ")
157
- lines = []
158
- line = ""
159
- words.each do |word|
160
- if ((line + word).length > max_length)
161
- lines << line
162
- line = indent + word
163
- else
164
- if (line.length == 0)
165
- line = word
166
- else
167
- line += " " + word
168
- end
169
- end
170
- end
171
- lines << line
172
- return lines.join("\n")
173
- end
174
- end
175
- 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 self.include?("/")
72
+ # get the directory
73
+ directory = self.split("/")[0..-2].join("/")
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