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
data/lib/makit/process.rb CHANGED
@@ -1,65 +1,65 @@
1
- # This module provides classes for the Makit gem.
2
- module Makit
3
- class Process
4
- def self.is_running?(name)
5
- # provide a cross-platform way to check if a process is running
6
- if Makit::Environment.is_windows?
7
- # on windows, use the tasklist command
8
- results = `tasklist /FI "imagename eq #{name}.exe"`
9
- results.include?(name)
10
- else
11
- # on linux, use the ps command
12
- results = `ps aux | grep #{name} | grep -v grep`
13
- results.include?(name)
14
- end
15
- end
16
-
17
- # kill all processes that match a name
18
- #
19
- # for a use case, running on a macbook:
20
- # Makit::Process.kill("dotnet")
21
- # an error 'kill: illegal process id: dotnet' is reported
22
- def self.kill(name)
23
- # provide a cross-platform way to kill a process
24
- if Makit::Environment.is_windows?
25
- `taskkill /IM #{name}.exe /F`
26
- else
27
- # First find all PIDs matching the name
28
- pids = `pgrep -f #{name}`.split("\n")
29
- # Kill each process by its PID
30
- pids.each do |pid|
31
- `kill -9 #{pid}` unless pid.empty?
32
- end
33
- end
34
- end
35
-
36
- def self.list
37
- if Makit::Environment.is_windows?
38
- `tasklist`
39
- else
40
- `ps aux`
41
- end
42
- end
43
-
44
- def self.list_current_user
45
- if Makit::Environment.is_windows?
46
- `tasklist /FI "STATUS eq running and USERNAME eq #{Makit::Environment.current_user}"`
47
- else
48
- `ps aux | grep #{Makit::Environment.current_user} | grep -v grep`
49
- end
50
- end
51
-
52
- # list all processes for the current user
53
- # name is a string to filter the processes by name
54
- def self.list_current_user_processes(name)
55
- if Makit::Environment.is_windows?
56
- `tasklist /FI "STATUS eq running and USERNAME eq #{Makit::Environment.current_user}"`
57
- # filter the results to only include the current user
58
- results = `tasklist /FI "STATUS eq running and USERNAME eq #{Makit::Environment.current_user}"`
59
- results.split("\n").select { |line| line.include?(Makit::Environment.current_user) }
60
- else
61
- `ps aux | grep #{name} | grep -v grep`
62
- end
63
- end
64
- end
65
- end
1
+ # This module provides classes for the Makit gem.
2
+ module Makit
3
+ class Process
4
+ def self.is_running?(name)
5
+ # provide a cross-platform way to check if a process is running
6
+ if Makit::Environment.is_windows?
7
+ # on windows, use the tasklist command
8
+ results = `tasklist /FI "imagename eq #{name}.exe"`
9
+ results.include?(name)
10
+ else
11
+ # on linux, use the ps command
12
+ results = `ps aux | grep #{name} | grep -v grep`
13
+ results.include?(name)
14
+ end
15
+ end
16
+
17
+ # kill all processes that match a name
18
+ #
19
+ # for a use case, running on a macbook:
20
+ # Makit::Process.kill("dotnet")
21
+ # an error 'kill: illegal process id: dotnet' is reported
22
+ def self.kill(name)
23
+ # provide a cross-platform way to kill a process
24
+ if Makit::Environment.is_windows?
25
+ `taskkill /IM #{name}.exe /F`
26
+ else
27
+ # First find all PIDs matching the name
28
+ pids = `pgrep -f #{name}`.split("\n")
29
+ # Kill each process by its PID
30
+ pids.each do |pid|
31
+ `kill -9 #{pid}` unless pid.empty?
32
+ end
33
+ end
34
+ end
35
+
36
+ def self.list
37
+ if Makit::Environment.is_windows?
38
+ `tasklist`
39
+ else
40
+ `ps aux`
41
+ end
42
+ end
43
+
44
+ def self.list_current_user
45
+ if Makit::Environment.is_windows?
46
+ `tasklist /FI "STATUS eq running and USERNAME eq #{Makit::Environment.current_user}"`
47
+ else
48
+ `ps aux | grep #{Makit::Environment.current_user} | grep -v grep`
49
+ end
50
+ end
51
+
52
+ # list all processes for the current user
53
+ # name is a string to filter the processes by name
54
+ def self.list_current_user_processes(name)
55
+ if Makit::Environment.is_windows?
56
+ `tasklist /FI "STATUS eq running and USERNAME eq #{Makit::Environment.current_user}"`
57
+ # filter the results to only include the current user
58
+ results = `tasklist /FI "STATUS eq running and USERNAME eq #{Makit::Environment.current_user}"`
59
+ results.split("\n").select { |line| line.include?(Makit::Environment.current_user) }
60
+ else
61
+ `ps aux | grep #{name} | grep -v grep`
62
+ end
63
+ end
64
+ end
65
+ end
data/lib/makit/protoc.rb CHANGED
@@ -1,104 +1,104 @@
1
- # frozen_string_literal: true
2
- require "pathname"
3
-
4
- # This module provides classes for the Makit gem.
5
- module Makit
6
- # This class provide methods for working with the system Environment.
7
- #
8
- class Protoc
9
- def self.grpc_tools_path
10
- File.join(Makit::Directories::NUGET_PACKAGE_CACHE, "grpc.tools", Makit::Protoc::get_latest_grpc_tools_version)
11
- end
12
-
13
- def self.grpc_csharp_plugin_path
14
- Makit::Protoc::find_plugin_path("grpc_csharp_plugin")
15
- end
16
- def self.setup
17
- if (!Dir.exist?(Makit::Directories::NUGET_PACKAGE_CACHE))
18
- puts " warning: Nuget package cache directory #{Makit::Directories::NUGET_PACKAGE_CACHE} not found".colorize(:red)
19
- puts " warning: Unable to proceed with protoc setup".colorize(:red)
20
- else
21
- Makit::NuGet::cache("Grpc.Tools", "2.66.0")
22
- raise "Nuget package path #{Makit::Directories::NUGET_PACKAGE_CACHE} not found" if !Dir.exist?(Makit::Directories::NUGET_PACKAGE_CACHE)
23
-
24
- # test if protoc is installed by running >protoc --version
25
- which_protoc = Makit::Environment.which("protoc")
26
- if (Makit::Environment.which("protoc").nil?)
27
- puts " protoc not found, installing...".colorize(:red)
28
- "go version".run
29
- "go install google.golang.org/protobuf/cmd/protoc-gen-go@latest".run
30
- "go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest".run
31
- "go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest".run
32
- else
33
- puts " protoc found at #{which_protoc}".colorize(:green)
34
- end
35
- raise "protoc not found" if !Makit::Environment.which("protoc")
36
-
37
- #"git clone https://github.com/googleapis/googleapis.git third_party".run unless File.directory?("third_party/google")
38
- puts " grpc_tools_path " + "#{Makit::Protoc::grpc_tools_path}".colorize(:green)
39
- puts " grpc_csharp_plugin_path " + "#{Makit::Protoc::grpc_csharp_plugin_path}".colorize(:green)
40
- end
41
- end
42
-
43
- # get the latest version of the grpc.tools package
44
- def self.get_latest_grpc_tools_version
45
- Makit::NuGet::get_latest_version("Grpc.Tools")
46
- end
47
-
48
- #GRPC_CSHARP_PLUGIN_PATH = Makit::Protoc::find_plugin_path("grpc_csharp_plugin")
49
- def self.find_plugin_path(plugin_name)
50
- # search for a file matching the pattern *grpc_csharp_plugin* in the grpc.tools directory
51
- # should match on Windows and Linux
52
- if (Makit::Environment.is_windows?)
53
- plugin_name = plugin_name + ".exe"
54
- end
55
-
56
- plugin_path = Dir.glob("#{Makit::Directories::GRPC_TOOLS_PATH}/**/#{plugin_name}").first
57
-
58
- raise "Plugin path #{plugin_path} not found" if !File.exist?(plugin_path)
59
- plugin_path
60
- end
61
-
62
- def self.get_proto_files_from_path(proto_source_dir)
63
- proto_files = Array.new()
64
- Dir.chdir(proto_source_dir) do
65
- Dir.glob("**/*.proto").each do |proto|
66
- proto_files << proto
67
- end
68
- end
69
- proto_files
70
- end
71
-
72
- def self.generate_source_file(proto_filename, language, csharp_output_dir)
73
- FileUtils.mkdir_p(csharp_output_dir) unless Dir.exist?(csharp_output_dir)
74
- "protoc --#{language}_out=#{csharp_output_dir} #{proto_filename}".run
75
- end
76
-
77
- # language: charp, ruby, go, etc.
78
- def self.generate_source_files(proto_source_dir, language, output_dir)
79
- debug = false
80
- puts "Generating source files for #{language} in #{proto_source_dir} to #{output_dir}" if debug
81
- FileUtils.mkdir_p(output_dir) unless Dir.exist?(output_dir)
82
-
83
- path_a = Pathname.new(proto_source_dir)
84
- path_b = Pathname.new(output_dir)
85
- output_relative_path = path_b.relative_path_from(path_a)
86
- puts "output_relative_path: #{output_relative_path}" if debug
87
-
88
- Dir.chdir(proto_source_dir) do
89
- Dir.glob("**/*.proto").each do |proto|
90
- puts "Generating #{proto}" if debug
91
- if (language == "csharp")
92
- namespace_dir = File.dirname(proto)
93
- output_dir = "#{output_relative_path}/#{namespace_dir}"
94
- puts "Generating #{proto} in #{output_dir}" if debug
95
- FileUtils.mkdir_p("#{output_dir}") unless Dir.exist?("#{output_dir}")
96
- "protoc --csharp_out=#{output_dir} #{proto}".run
97
- else
98
- "protoc --#{language}_out=#{output_relative_path} #{proto}".run
99
- end
100
- end
101
- end
102
- end
103
- end
104
- end
1
+ # frozen_string_literal: true
2
+ require "pathname"
3
+
4
+ # This module provides classes for the Makit gem.
5
+ module Makit
6
+ # This class provide methods for working with the system Environment.
7
+ #
8
+ class Protoc
9
+ def self.grpc_tools_path
10
+ File.join(Makit::Directories::NUGET_PACKAGE_CACHE, "grpc.tools", Makit::Protoc::get_latest_grpc_tools_version)
11
+ end
12
+
13
+ def self.grpc_csharp_plugin_path
14
+ Makit::Protoc::find_plugin_path("grpc_csharp_plugin")
15
+ end
16
+ def self.setup
17
+ if (!Dir.exist?(Makit::Directories::NUGET_PACKAGE_CACHE))
18
+ puts " warning: Nuget package cache directory #{Makit::Directories::NUGET_PACKAGE_CACHE} not found".colorize(:red)
19
+ puts " warning: Unable to proceed with protoc setup".colorize(:red)
20
+ else
21
+ Makit::NuGet::cache("Grpc.Tools", "2.66.0")
22
+ raise "Nuget package path #{Makit::Directories::NUGET_PACKAGE_CACHE} not found" if !Dir.exist?(Makit::Directories::NUGET_PACKAGE_CACHE)
23
+
24
+ # test if protoc is installed by running >protoc --version
25
+ which_protoc = Makit::Environment.which("protoc")
26
+ if (Makit::Environment.which("protoc").nil?)
27
+ puts " protoc not found, installing...".colorize(:red)
28
+ "go version".run
29
+ "go install google.golang.org/protobuf/cmd/protoc-gen-go@latest".run
30
+ "go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest".run
31
+ "go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest".run
32
+ else
33
+ puts " protoc found at #{which_protoc}".colorize(:green)
34
+ end
35
+ raise "protoc not found" if !Makit::Environment.which("protoc")
36
+
37
+ #"git clone https://github.com/googleapis/googleapis.git third_party".run unless File.directory?("third_party/google")
38
+ puts " grpc_tools_path " + "#{Makit::Protoc::grpc_tools_path}".colorize(:green)
39
+ puts " grpc_csharp_plugin_path " + "#{Makit::Protoc::grpc_csharp_plugin_path}".colorize(:green)
40
+ end
41
+ end
42
+
43
+ # get the latest version of the grpc.tools package
44
+ def self.get_latest_grpc_tools_version
45
+ Makit::NuGet::get_latest_version("Grpc.Tools")
46
+ end
47
+
48
+ #GRPC_CSHARP_PLUGIN_PATH = Makit::Protoc::find_plugin_path("grpc_csharp_plugin")
49
+ def self.find_plugin_path(plugin_name)
50
+ # search for a file matching the pattern *grpc_csharp_plugin* in the grpc.tools directory
51
+ # should match on Windows and Linux
52
+ if (Makit::Environment.is_windows?)
53
+ plugin_name = plugin_name + ".exe"
54
+ end
55
+
56
+ plugin_path = Dir.glob("#{Makit::Directories::GRPC_TOOLS_PATH}/**/#{plugin_name}").first
57
+
58
+ raise "Plugin path #{plugin_path} not found" if !File.exist?(plugin_path)
59
+ plugin_path
60
+ end
61
+
62
+ def self.get_proto_files_from_path(proto_source_dir)
63
+ proto_files = Array.new()
64
+ Dir.chdir(proto_source_dir) do
65
+ Dir.glob("**/*.proto").each do |proto|
66
+ proto_files << proto
67
+ end
68
+ end
69
+ proto_files
70
+ end
71
+
72
+ def self.generate_source_file(proto_filename, language, csharp_output_dir)
73
+ FileUtils.mkdir_p(csharp_output_dir) unless Dir.exist?(csharp_output_dir)
74
+ "protoc --#{language}_out=#{csharp_output_dir} #{proto_filename}".run
75
+ end
76
+
77
+ # language: charp, ruby, go, etc.
78
+ def self.generate_source_files(proto_source_dir, language, output_dir)
79
+ debug = false
80
+ puts "Generating source files for #{language} in #{proto_source_dir} to #{output_dir}" if debug
81
+ FileUtils.mkdir_p(output_dir) unless Dir.exist?(output_dir)
82
+
83
+ path_a = Pathname.new(proto_source_dir)
84
+ path_b = Pathname.new(output_dir)
85
+ output_relative_path = path_b.relative_path_from(path_a)
86
+ puts "output_relative_path: #{output_relative_path}" if debug
87
+
88
+ Dir.chdir(proto_source_dir) do
89
+ Dir.glob("**/*.proto").each do |proto|
90
+ puts "Generating #{proto}" if debug
91
+ if (language == "csharp")
92
+ namespace_dir = File.dirname(proto)
93
+ output_dir = "#{output_relative_path}/#{namespace_dir}"
94
+ puts "Generating #{proto} in #{output_dir}" if debug
95
+ FileUtils.mkdir_p("#{output_dir}") unless Dir.exist?("#{output_dir}")
96
+ "protoc --csharp_out=#{output_dir} #{proto}".run
97
+ else
98
+ "protoc --#{language}_out=#{output_relative_path} #{proto}".run
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
data/lib/makit/rake.rb CHANGED
@@ -1,25 +1,25 @@
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 the system Environment.
6
- #
7
- class Rake
8
- def self.rake_repository(url, task_name)
9
- local_path = File.join(Makit::Directories::HOME, "code", "work", Makit::Directories.get_relative_directory(url))
10
- if (Dir.exist?(local_path))
11
- Dir.chdir(local_path) do
12
- puts " " + "#{local_path}".colorize(:grey)
13
- "git pull".run
14
- end
15
- else
16
- puts "> ".colorize(:grey) + "git clone #{url} #{local_path}".colorize(:green)
17
- `git clone #{url} #{local_path}`
18
- end
19
- Dir.chdir(local_path) do
20
- puts " " + "#{local_path}".colorize(:grey)
21
- "rake #{task_name}".run
22
- end
23
- end
24
- end # class Rake
25
- 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 working with the system Environment.
6
+ #
7
+ class Rake
8
+ def self.rake_repository(url, task_name)
9
+ local_path = File.join(Makit::Directories::HOME, "code", "work", Makit::Directories.get_relative_directory(url))
10
+ if (Dir.exist?(local_path))
11
+ Dir.chdir(local_path) do
12
+ puts " " + "#{local_path}".colorize(:grey)
13
+ "git pull".run
14
+ end
15
+ else
16
+ puts "> ".colorize(:grey) + "git clone #{url} #{local_path}".colorize(:green)
17
+ `git clone #{url} #{local_path}`
18
+ end
19
+ Dir.chdir(local_path) do
20
+ puts " " + "#{local_path}".colorize(:grey)
21
+ "rake #{task_name}".run
22
+ end
23
+ end
24
+ end # class Rake
25
+ end # module Makit
data/lib/makit/secrets.rb CHANGED
@@ -1,51 +1,51 @@
1
- module Makit
2
- class Secrets
3
- def add(key, value)
4
- secrets_hash = get_secrets_hash()
5
- secrets_hash[key] = value
6
- save_secrets_hash(secrets_hash)
7
- end
8
-
9
- def remove(key)
10
- secrets_hash = get_secrets_hash()
11
- secrets_hash.delete(key)
12
- save_secrets_hash(secrets_hash)
13
- end
14
-
15
- def has_key?(key)
16
- secrets_hash = get_secrets_hash()
17
- return secrets_hash.key?(key)
18
- end
19
-
20
- def get(key)
21
- secrets_hash = get_secrets_hash()
22
- return secrets_hash[key]
23
- end
24
-
25
- def set(key, value)
26
- secrets_hash = get_secrets_hash()
27
- secrets_hash[key] = value
28
- save_secrets_hash(secrets_hash)
29
- end
30
-
31
- def get_secrets_filename()
32
- return "#{Makit::Directories::ROOT}/secrets.json"
33
- end
34
-
35
- def get_secrets_hash()
36
- secrets_file = get_secrets_filename()
37
- if File.exist?(secrets_file)
38
- text = IO.read(secrets_file)
39
- return JSON.parse(text)
40
- else
41
- return {}
42
- end
43
- end
44
-
45
- def save_secrets_hash(hash)
46
- secrets_file = get_secrets_filename()
47
- # pretty print the hash
48
- File.open(secrets_file, "w") { |f| f.puts JSON.pretty_generate(hash) }
49
- end
50
- end
51
- end
1
+ module Makit
2
+ class Secrets
3
+ def add(key, value)
4
+ secrets_hash = get_secrets_hash()
5
+ secrets_hash[key] = value
6
+ save_secrets_hash(secrets_hash)
7
+ end
8
+
9
+ def remove(key)
10
+ secrets_hash = get_secrets_hash()
11
+ secrets_hash.delete(key)
12
+ save_secrets_hash(secrets_hash)
13
+ end
14
+
15
+ def has_key?(key)
16
+ secrets_hash = get_secrets_hash()
17
+ return secrets_hash.key?(key)
18
+ end
19
+
20
+ def get(key)
21
+ secrets_hash = get_secrets_hash()
22
+ return secrets_hash[key]
23
+ end
24
+
25
+ def set(key, value)
26
+ secrets_hash = get_secrets_hash()
27
+ secrets_hash[key] = value
28
+ save_secrets_hash(secrets_hash)
29
+ end
30
+
31
+ def get_secrets_filename()
32
+ return "#{Makit::Directories::ROOT}/secrets.json"
33
+ end
34
+
35
+ def get_secrets_hash()
36
+ secrets_file = get_secrets_filename()
37
+ if File.exist?(secrets_file)
38
+ text = IO.read(secrets_file)
39
+ return JSON.parse(text)
40
+ else
41
+ return {}
42
+ end
43
+ end
44
+
45
+ def save_secrets_hash(hash)
46
+ secrets_file = get_secrets_filename()
47
+ # pretty print the hash
48
+ File.open(secrets_file, "w") { |f| f.puts JSON.pretty_generate(hash) }
49
+ end
50
+ end
51
+ end