makit 0.0.75 → 0.0.76

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/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 +143 -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 +212 -182
  27. data/lib/makit/environment.rb +131 -131
  28. data/lib/makit/fileinfo.rb +26 -26
  29. data/lib/makit/files.rb +47 -47
  30. data/lib/makit/git.rb +145 -145
  31. data/lib/makit/gitlab_runner.rb +60 -60
  32. data/lib/makit/humanize.rb +129 -129
  33. data/lib/makit/indexer.rb +56 -56
  34. data/lib/makit/logging.rb +106 -106
  35. data/lib/makit/markdown.rb +75 -75
  36. data/lib/makit/mp/basic_object_mp.rb +16 -16
  37. data/lib/makit/mp/command_mp.rb +13 -13
  38. data/lib/makit/mp/command_request.mp.rb +16 -16
  39. data/lib/makit/mp/project_mp.rb +210 -210
  40. data/lib/makit/mp/string_mp.rb +137 -137
  41. data/lib/makit/nuget.rb +62 -62
  42. data/lib/makit/process.rb +26 -26
  43. data/lib/makit/protoc.rb +104 -104
  44. data/lib/makit/secrets.rb +51 -51
  45. data/lib/makit/serializer.rb +115 -115
  46. data/lib/makit/show.rb +110 -110
  47. data/lib/makit/storage.rb +131 -131
  48. data/lib/makit/symbols.rb +149 -149
  49. data/lib/makit/task_info.rb +86 -86
  50. data/lib/makit/tasks.rb +137 -137
  51. data/lib/makit/tree.rb +37 -37
  52. data/lib/makit/v1/makit.v1_services_pb.rb +25 -25
  53. data/lib/makit/version.rb +65 -65
  54. data/lib/makit/wix.rb +95 -95
  55. data/lib/makit/yaml.rb +17 -17
  56. data/lib/makit/zip.rb +17 -17
  57. data/lib/makit.rb +267 -267
  58. metadata +5 -3
@@ -1,26 +1,26 @@
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 FileInfo
8
- attr_accessor :name, :mtime, :size
9
-
10
- def initialize(name:, mtime:, size:)
11
- @name = name
12
- @mtime = mtime
13
- @size = size
14
- end
15
-
16
- def self.get_file_infos(filenames)
17
- filenames.map do |filename|
18
- begin
19
- FileInfo.new(name: filename, mtime: File.mtime(filename), size: File.size(filename))
20
- rescue
21
- next
22
- end
23
- end
24
- end
25
- end
26
- end
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 FileInfo
8
+ attr_accessor :name, :mtime, :size
9
+
10
+ def initialize(name:, mtime:, size:)
11
+ @name = name
12
+ @mtime = mtime
13
+ @size = size
14
+ end
15
+
16
+ def self.get_file_infos(filenames)
17
+ filenames.map do |filename|
18
+ begin
19
+ FileInfo.new(name: filename, mtime: File.mtime(filename), size: File.size(filename))
20
+ rescue
21
+ next
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
data/lib/makit/files.rb CHANGED
@@ -1,47 +1,47 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "directory"
4
- require_relative "environment"
5
- require_relative "protoc"
6
- require_relative "nuget"
7
- require_relative "version"
8
- require "rake"
9
-
10
- # This module provides classes for the Makit gem.
11
- module Makit
12
- # This class provide methods for working with the system Environment.
13
- #
14
- module Files
15
- if (Makit::Directories::PROJECT_ROOT != nil)
16
- Dir.chdir(Makit::Directories::PROJECT_ROOT) do
17
- CSPROJ = Dir.glob("**/*.csproj")
18
- end
19
- else
20
- CSPROJ = Array.new
21
- end
22
-
23
- # show all the files constants in a nicely formatted table format with the name of the constant and the value
24
- def self.show
25
- # Array of constant names (symbols)
26
- constant_names = [:CSPROJ]
27
-
28
- # Find the length of the longest constant name and add 1
29
- max_length = constant_names.map(&:to_s).max_by(&:length).length + 1
30
-
31
- # Iterate through each constant name
32
- constant_names.each do |constant_name|
33
- begin
34
- constant_value = const_get(constant_name) # Fetch the value of the constant
35
- if (constant_value != nil && File.exist?(constant_value))
36
- constant_value = constant_value.colorize(:green)
37
- end
38
- # Print the constant name right justified to the max_length
39
- puts "#{constant_name.to_s.rjust(max_length)} = #{constant_value}"
40
- rescue NameError
41
- # Handle the case where the constant is not defined
42
- puts "#{constant_name.to_s.rjust(max_length)} = [Constant not defined]"
43
- end
44
- end
45
- end
46
- end # module Files
47
- end # module Makit
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "directory"
4
+ require_relative "environment"
5
+ require_relative "protoc"
6
+ require_relative "nuget"
7
+ require_relative "version"
8
+ require "rake"
9
+
10
+ # This module provides classes for the Makit gem.
11
+ module Makit
12
+ # This class provide methods for working with the system Environment.
13
+ #
14
+ module Files
15
+ if (Makit::Directories::PROJECT_ROOT != nil)
16
+ Dir.chdir(Makit::Directories::PROJECT_ROOT) do
17
+ CSPROJ = Dir.glob("**/*.csproj")
18
+ end
19
+ else
20
+ CSPROJ = Array.new
21
+ end
22
+
23
+ # show all the files constants in a nicely formatted table format with the name of the constant and the value
24
+ def self.show
25
+ # Array of constant names (symbols)
26
+ constant_names = [:CSPROJ]
27
+
28
+ # Find the length of the longest constant name and add 1
29
+ max_length = constant_names.map(&:to_s).max_by(&:length).length + 1
30
+
31
+ # Iterate through each constant name
32
+ constant_names.each do |constant_name|
33
+ begin
34
+ constant_value = const_get(constant_name) # Fetch the value of the constant
35
+ if (constant_value != nil && File.exist?(constant_value))
36
+ constant_value = constant_value.colorize(:green)
37
+ end
38
+ # Print the constant name right justified to the max_length
39
+ puts "#{constant_name.to_s.rjust(max_length)} = #{constant_value}"
40
+ rescue NameError
41
+ # Handle the case where the constant is not defined
42
+ puts "#{constant_name.to_s.rjust(max_length)} = [Constant not defined]"
43
+ end
44
+ end
45
+ end
46
+ end # module Files
47
+ end # module Makit
data/lib/makit/git.rb CHANGED
@@ -1,145 +1,145 @@
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 Git
8
- def self.is_git_repo
9
- Dir.exist? ".git"
10
- end
11
-
12
- def self.is_ci
13
- ENV["CI"] == "true"
14
- end
15
-
16
- def self.detached
17
- `git status`.include?("detached")
18
- end
19
-
20
- def self.is_read_only
21
- !is_git_repo || detached
22
- end
23
-
24
- def self.is_clean
25
- `git status --porcelain`.empty?
26
- end
27
-
28
- def self.unstaged_files
29
- `git status --porcelain`.split("\n")
30
- end
31
-
32
- def self.untracked_files
33
- `git ls-files --others --exclude-standard`.split("\n")
34
- end
35
-
36
- def self.integrate
37
- if is_git_repo && !detached
38
- ## check for unstaged or untracked files
39
- unstaged_files = `git status --porcelain`.split("\n")
40
- untracked_files = `git ls-files --others --exclude-standard`.split("\n")
41
- if unstaged_files.length > 0 || untracked_files.length > 0
42
- "git add .".run
43
- "git commit -m \"integrate\"".run unless is_clean
44
- end
45
- end
46
- end
47
-
48
- def self.sync
49
- if is_git_repo && !detached
50
- "git pull".try
51
- "git push origin".try
52
- "git push origin --tags".try
53
- end
54
- end
55
-
56
- def self.pull
57
- if is_git_repo && !detached
58
- "git pull".try
59
- end
60
- end
61
-
62
- def self.zip_source_files(zipfilename)
63
- "git archive --format zip --output #{zipfilename} HEAD".run
64
- end
65
-
66
- def self.get_file_infos
67
- file_infos = []
68
- file_list = `git ls-files`.split("\n")
69
- # iterate over the filelist and get the file infos
70
- file_list.each do |file|
71
- begin
72
- file_infos << FileInfo.new(name: file, mtime: File.mtime(file), size: File.size(file))
73
- rescue
74
- next
75
- end
76
- end
77
- file_infos.sort_by! { |info| info.mtime }.reverse!
78
- file_infos
79
- end
80
-
81
- def self.get_untracked_file_infos
82
- #Makit::FileInfo::get_file_infos(`git ls-files --others --exclude=standard`.split("\n")).sort_by! { |info| info.mtime }.reverse!
83
- file_infos = []
84
- file_list = `git ls-files --others --exclude=standard`.split("\n")
85
- file_list.each do |file|
86
- begin
87
- file_infos << FileInfo.new(name: file, mtime: File.mtime(file), size: File.size(file))
88
- rescue
89
- next
90
- end
91
- end
92
- file_infos.sort_by! { |info| info.mtime }.reverse!
93
- file_infos
94
- # file_infos << FileInfo.new(name: path, mtime: File.mtime(path), size: File.size(path))
95
- # rescue
96
- # next
97
- #ß end
98
- #end
99
- #file_infos.sort_by! { |info| info.mtime }.reverse!
100
- #file_infos
101
- end
102
-
103
- def self.branch
104
- `git branch --show-current`.strip
105
- end
106
-
107
- def self.commitsha
108
- `git rev-parse HEAD`.strip
109
- end
110
-
111
- def self.commitmsg
112
- `git log -1 --pretty=%B`.strip
113
- end
114
-
115
- def self.commitdate
116
- `git log -1 --pretty=%cd`.strip
117
- end
118
-
119
- def self.commitauthor
120
- `git log -1 --pretty=%an`.strip
121
- end
122
-
123
- def self.commitemail
124
- `git log -1 --pretty=%ae`.strip
125
- end
126
-
127
- def self.get_remote_url
128
- `git remote get-url origin`.strip
129
- end
130
-
131
- def self.tag(version)
132
- # only tag if the repo is not read only
133
- if is_read_only
134
- puts " cannot tag a read only repo".colorize(:red)
135
- return
136
- end
137
- # check if a tag for the current version already exists
138
- if (`git tag -l v#{version}`.strip.length > 0)
139
- puts " tag v#{version} already exists".colorize(:red)
140
- else
141
- "git tag -a v#{version} -m \"version #{version}\"".run
142
- end
143
- end
144
- end
145
- end
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 Git
8
+ def self.is_git_repo
9
+ Dir.exist? ".git"
10
+ end
11
+
12
+ def self.is_ci
13
+ ENV["CI"] == "true"
14
+ end
15
+
16
+ def self.detached
17
+ `git status`.include?("detached")
18
+ end
19
+
20
+ def self.is_read_only
21
+ !is_git_repo || detached
22
+ end
23
+
24
+ def self.is_clean
25
+ `git status --porcelain`.empty?
26
+ end
27
+
28
+ def self.unstaged_files
29
+ `git status --porcelain`.split("\n")
30
+ end
31
+
32
+ def self.untracked_files
33
+ `git ls-files --others --exclude-standard`.split("\n")
34
+ end
35
+
36
+ def self.integrate
37
+ if is_git_repo && !detached
38
+ ## check for unstaged or untracked files
39
+ unstaged_files = `git status --porcelain`.split("\n")
40
+ untracked_files = `git ls-files --others --exclude-standard`.split("\n")
41
+ if unstaged_files.length > 0 || untracked_files.length > 0
42
+ "git add .".run
43
+ "git commit -m \"integrate\"".run unless is_clean
44
+ end
45
+ end
46
+ end
47
+
48
+ def self.sync
49
+ if is_git_repo && !detached
50
+ "git pull".try
51
+ "git push origin".try
52
+ "git push origin --tags".try
53
+ end
54
+ end
55
+
56
+ def self.pull
57
+ if is_git_repo && !detached
58
+ "git pull".try
59
+ end
60
+ end
61
+
62
+ def self.zip_source_files(zipfilename)
63
+ "git archive --format zip --output #{zipfilename} HEAD".run
64
+ end
65
+
66
+ def self.get_file_infos
67
+ file_infos = []
68
+ file_list = `git ls-files`.split("\n")
69
+ # iterate over the filelist and get the file infos
70
+ file_list.each do |file|
71
+ begin
72
+ file_infos << FileInfo.new(name: file, mtime: File.mtime(file), size: File.size(file))
73
+ rescue
74
+ next
75
+ end
76
+ end
77
+ file_infos.sort_by! { |info| info.mtime }.reverse!
78
+ file_infos
79
+ end
80
+
81
+ def self.get_untracked_file_infos
82
+ #Makit::FileInfo::get_file_infos(`git ls-files --others --exclude=standard`.split("\n")).sort_by! { |info| info.mtime }.reverse!
83
+ file_infos = []
84
+ file_list = `git ls-files --others --exclude=standard`.split("\n")
85
+ file_list.each do |file|
86
+ begin
87
+ file_infos << FileInfo.new(name: file, mtime: File.mtime(file), size: File.size(file))
88
+ rescue
89
+ next
90
+ end
91
+ end
92
+ file_infos.sort_by! { |info| info.mtime }.reverse!
93
+ file_infos
94
+ # file_infos << FileInfo.new(name: path, mtime: File.mtime(path), size: File.size(path))
95
+ # rescue
96
+ # next
97
+ #ß end
98
+ #end
99
+ #file_infos.sort_by! { |info| info.mtime }.reverse!
100
+ #file_infos
101
+ end
102
+
103
+ def self.branch
104
+ `git branch --show-current`.strip
105
+ end
106
+
107
+ def self.commitsha
108
+ `git rev-parse HEAD`.strip
109
+ end
110
+
111
+ def self.commitmsg
112
+ `git log -1 --pretty=%B`.strip
113
+ end
114
+
115
+ def self.commitdate
116
+ `git log -1 --pretty=%cd`.strip
117
+ end
118
+
119
+ def self.commitauthor
120
+ `git log -1 --pretty=%an`.strip
121
+ end
122
+
123
+ def self.commitemail
124
+ `git log -1 --pretty=%ae`.strip
125
+ end
126
+
127
+ def self.get_remote_url
128
+ `git remote get-url origin`.strip
129
+ end
130
+
131
+ def self.tag(version)
132
+ # only tag if the repo is not read only
133
+ if is_read_only
134
+ puts " cannot tag a read only repo".colorize(:red)
135
+ return
136
+ end
137
+ # check if a tag for the current version already exists
138
+ if (`git tag -l v#{version}`.strip.length > 0)
139
+ puts " tag v#{version} already exists".colorize(:red)
140
+ else
141
+ "git tag -a v#{version} -m \"version #{version}\"".run
142
+ end
143
+ end
144
+ end
145
+ end
@@ -1,60 +1,60 @@
1
- # frozen_string_literal: true
2
-
3
- require "yaml"
4
- require "fileutils"
5
-
6
- # This module provides classes for the Makit gem.
7
- module Makit
8
- # This class provide methods for working with Directories/
9
- #
10
- # Example:
11
- #
12
- # Makit::Directory.find_directory_with_pattern("/home/user", "*.rb")
13
- #
14
- class GitLabRunner
15
-
16
- # Parse the .gitlab-ci.yml file
17
- def parse_gitlab_ci_file(file_path)
18
- YAML.load_file(file_path)
19
- end
20
-
21
- # Extract the script for a specified job
22
- def extract_script(ci_config, job_name)
23
- job = ci_config[job_name]
24
- job ? job["script"] : nil
25
- end
26
-
27
- # Write the script to a temporary file
28
- def write_script_to_file(script, file_path)
29
- File.open(file_path, "w") do |file|
30
- script.each { |line| file.puts(line) }
31
- end
32
- end
33
-
34
- # Run the script in a Docker container
35
- def run_script_in_docker(image, script_file)
36
- system("docker run --rm -v #{Dir.pwd}:/workspace -w /workspace #{image} /bin/sh #{script_file}")
37
- end
38
-
39
- # Main function to execute the process
40
- def run_job(ci_file_path, job_name, docker_image)
41
- ci_config = parse_gitlab_ci_file(ci_file_path)
42
- script = extract_script(ci_config, job_name)
43
-
44
- unless script
45
- puts "Job '#{job_name}' not found in #{ci_file_path}"
46
- return
47
- end
48
-
49
- script_file = "temp_script.sh"
50
- write_script_to_file(script, script_file)
51
- FileUtils.chmod("+x", script_file)
52
-
53
- puts "Running script in Docker container..."
54
- run_script_in_docker(docker_image, script_file)
55
-
56
- # Clean up the temporary script file
57
- FileUtils.rm(script_file)
58
- end
59
- end
60
- end
1
+ # frozen_string_literal: true
2
+
3
+ require "yaml"
4
+ require "fileutils"
5
+
6
+ # This module provides classes for the Makit gem.
7
+ module Makit
8
+ # This class provide methods for working with Directories/
9
+ #
10
+ # Example:
11
+ #
12
+ # Makit::Directory.find_directory_with_pattern("/home/user", "*.rb")
13
+ #
14
+ class GitLabRunner
15
+
16
+ # Parse the .gitlab-ci.yml file
17
+ def parse_gitlab_ci_file(file_path)
18
+ YAML.load_file(file_path)
19
+ end
20
+
21
+ # Extract the script for a specified job
22
+ def extract_script(ci_config, job_name)
23
+ job = ci_config[job_name]
24
+ job ? job["script"] : nil
25
+ end
26
+
27
+ # Write the script to a temporary file
28
+ def write_script_to_file(script, file_path)
29
+ File.open(file_path, "w") do |file|
30
+ script.each { |line| file.puts(line) }
31
+ end
32
+ end
33
+
34
+ # Run the script in a Docker container
35
+ def run_script_in_docker(image, script_file)
36
+ system("docker run --rm -v #{Dir.pwd}:/workspace -w /workspace #{image} /bin/sh #{script_file}")
37
+ end
38
+
39
+ # Main function to execute the process
40
+ def run_job(ci_file_path, job_name, docker_image)
41
+ ci_config = parse_gitlab_ci_file(ci_file_path)
42
+ script = extract_script(ci_config, job_name)
43
+
44
+ unless script
45
+ puts "Job '#{job_name}' not found in #{ci_file_path}"
46
+ return
47
+ end
48
+
49
+ script_file = "temp_script.sh"
50
+ write_script_to_file(script, script_file)
51
+ FileUtils.chmod("+x", script_file)
52
+
53
+ puts "Running script in Docker container..."
54
+ run_script_in_docker(docker_image, script_file)
55
+
56
+ # Clean up the temporary script file
57
+ FileUtils.rm(script_file)
58
+ end
59
+ end
60
+ end