makit 0.0.40 → 0.0.41

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generated/makit/v1/makit.v1_pb.rb +34 -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 +400 -391
  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 +140 -140
  23. data/lib/makit/directory.rb +200 -200
  24. data/lib/makit/dotnet.rb +155 -156
  25. data/lib/makit/environment.rb +127 -127
  26. data/lib/makit/fileinfo.rb +16 -16
  27. data/lib/makit/files.rb +47 -47
  28. data/lib/makit/git.rb +87 -87
  29. data/lib/makit/gitlab_runner.rb +60 -60
  30. data/lib/makit/humanize.rb +129 -129
  31. data/lib/makit/indexer.rb +56 -56
  32. data/lib/makit/logging.rb +96 -96
  33. data/lib/makit/markdown.rb +75 -75
  34. data/lib/makit/mp/basic_object_mp.rb +16 -16
  35. data/lib/makit/mp/command_request.mp.rb +16 -16
  36. data/lib/makit/mp/project_mp.rb +210 -210
  37. data/lib/makit/mp/string_mp.rb +140 -122
  38. data/lib/makit/nuget.rb +57 -57
  39. data/lib/makit/protoc.rb +104 -104
  40. data/lib/makit/serializer.rb +115 -115
  41. data/lib/makit/show.rb +108 -108
  42. data/lib/makit/storage.rb +131 -131
  43. data/lib/makit/symbols.rb +149 -149
  44. data/lib/makit/tasks.rb +60 -60
  45. data/lib/makit/tree.rb +37 -37
  46. data/lib/makit/v1/makit.v1_services_pb.rb +25 -25
  47. data/lib/makit/version.rb +52 -52
  48. data/lib/makit/wix.rb +95 -95
  49. data/lib/makit/zip.rb +17 -17
  50. data/lib/makit.rb +267 -267
  51. metadata +5 -3
data/lib/makit/tree.rb CHANGED
@@ -1,37 +1,37 @@
1
- # frozen_string_literal: true
2
-
3
- # This module provides classes for the Makit gem.
4
- module Makit
5
- class Tree
6
- def get_source_tree
7
- files = `git ls-files`.split("\n")
8
- tree = {}
9
-
10
- # Build a nested hash representing the file structure
11
- files.each do |file|
12
- parts = file.split("/")
13
- current = tree
14
-
15
- parts.each_with_index do |part, index|
16
- current[part] ||= (index == parts.length - 1 ? nil : {})
17
- current = current[part] unless current[part].nil?
18
- end
19
- end
20
-
21
- generate_tree_string(tree)
22
- end
23
-
24
- def generate_tree_string(tree, indent = "")
25
- result = ""
26
- tree.each do |key, value|
27
- if value.is_a?(Hash)
28
- result << "#{indent}#{key}/\n"
29
- result << generate_tree_string(value, "#{indent} ")
30
- else
31
- result << "#{indent}#{key}\n"
32
- end
33
- end
34
- result
35
- end
36
- end
37
- end
1
+ # frozen_string_literal: true
2
+
3
+ # This module provides classes for the Makit gem.
4
+ module Makit
5
+ class Tree
6
+ def get_source_tree
7
+ files = `git ls-files`.split("\n")
8
+ tree = {}
9
+
10
+ # Build a nested hash representing the file structure
11
+ files.each do |file|
12
+ parts = file.split("/")
13
+ current = tree
14
+
15
+ parts.each_with_index do |part, index|
16
+ current[part] ||= (index == parts.length - 1 ? nil : {})
17
+ current = current[part] unless current[part].nil?
18
+ end
19
+ end
20
+
21
+ generate_tree_string(tree)
22
+ end
23
+
24
+ def generate_tree_string(tree, indent = "")
25
+ result = ""
26
+ tree.each do |key, value|
27
+ if value.is_a?(Hash)
28
+ result << "#{indent}#{key}/\n"
29
+ result << generate_tree_string(value, "#{indent} ")
30
+ else
31
+ result << "#{indent}#{key}\n"
32
+ end
33
+ end
34
+ result
35
+ end
36
+ end
37
+ end
@@ -1,25 +1,25 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # Source: lib/makit/v1/makit.v1.proto for package 'makit.v1'
3
-
4
- require "grpc"
5
- require_relative "makit.v1_pb"
6
-
7
- module Makit
8
- module V1
9
- module CommandService
10
- # Service to execute commands on devices.
11
- class Service
12
- include ::GRPC::GenericService
13
-
14
- self.marshal_class_method = :encode
15
- self.unmarshal_class_method = :decode
16
- self.service_name = "makit.v1.CommandService"
17
-
18
- # Execute a command on a device.
19
- rpc :Execute, ::Makit::V1::CommandRequest, ::Makit::V1::Command
20
- end
21
-
22
- Stub = Service.rpc_stub_class
23
- end
24
- end
25
- end
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: lib/makit/v1/makit.v1.proto for package 'makit.v1'
3
+
4
+ require "grpc"
5
+ require_relative "makit.v1_pb"
6
+
7
+ module Makit
8
+ module V1
9
+ module CommandService
10
+ # Service to execute commands on devices.
11
+ class Service
12
+ include ::GRPC::GenericService
13
+
14
+ self.marshal_class_method = :encode
15
+ self.unmarshal_class_method = :decode
16
+ self.service_name = "makit.v1.CommandService"
17
+
18
+ # Execute a command on a device.
19
+ rpc :Execute, ::Makit::V1::CommandRequest, ::Makit::V1::Command
20
+ end
21
+
22
+ Stub = Service.rpc_stub_class
23
+ end
24
+ end
25
+ end
data/lib/makit/version.rb CHANGED
@@ -1,52 +1,52 @@
1
- # frozen_string_literal: true
2
-
3
- module Makit
4
- VERSION = "0.0.40"
5
-
6
- class Version
7
- # given an array of version strings, return the highest version
8
- def self.get_highest_version(versions)
9
- versions.sort { |a, b| Gem::Version.new(a) <=> Gem::Version.new(b) }.last
10
- end
11
-
12
- def self.get_version_from_file(path)
13
- if(!File.exist?(path))
14
- raise "file #{path}does not exist"
15
- end
16
-
17
- extension = File.extname(path)
18
- #switch = extension.downcase
19
- #case switch
20
- #if extension == ".csproj"
21
- switch = extension.downcase
22
- case switch
23
- when ".csproj"
24
- Makit::Version.detect_from_file(path, /<Version>([-\w\d.]+)</)
25
- when ".wxs"
26
- Makit::Version.detect_from_file(path, / Version="([\d\.]+)"/)
27
- else
28
- raise "unrecognized file type"
29
- end
30
- end
31
-
32
- def self.detect_from_file(filename, regex)
33
- if File.exist?(filename)
34
- match = IO.read(filename).match(regex)
35
- match.captures[0] if !match.nil? && match.captures.length.positive?
36
- else
37
- raise "unable to find version in #{filename}"
38
- end
39
- end
40
-
41
- def self.set_version_in_file(filename, version)
42
- text = IO.read(filename)
43
- new_text = text
44
- new_text = text.gsub(/version\s?=\s?['|"]([.\d]+)['|"]/, "version='#{version}'") if filename.include?(".gemspec")
45
- new_text = text.gsub(/<Version>([-\w\d.]+)</, "<Version>#{version}<") if filename.include?(".csproj")
46
- new_text = text.gsub(/<version>([-\w\d.]+)</, "<version>#{version}<") if filename.include?(".nuspec")
47
- new_text = text.gsub(/ Version="([\d\.]+)"/, " Version=\"#{version}\"") if filename.include?(".wxs")
48
- new_text = text.gsub(/version\s+=\s+['"]([\w.]+)['"]/, "version=\"#{version}\"") if filename.include?(".toml")
49
- File.open(filename, "w") { |f| f.write(new_text) } if new_text != text
50
- end
51
- end
52
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ VERSION = "0.0.41"
5
+
6
+ class Version
7
+ # given an array of version strings, return the highest version
8
+ def self.get_highest_version(versions)
9
+ versions.sort { |a, b| Gem::Version.new(a) <=> Gem::Version.new(b) }.last
10
+ end
11
+
12
+ def self.get_version_from_file(path)
13
+ if(!File.exist?(path))
14
+ raise "file #{path}does not exist"
15
+ end
16
+
17
+ extension = File.extname(path)
18
+ #switch = extension.downcase
19
+ #case switch
20
+ #if extension == ".csproj"
21
+ switch = extension.downcase
22
+ case switch
23
+ when ".csproj"
24
+ Makit::Version.detect_from_file(path, /<Version>([-\w\d.]+)</)
25
+ when ".wxs"
26
+ Makit::Version.detect_from_file(path, / Version="([\d\.]+)"/)
27
+ else
28
+ raise "unrecognized file type"
29
+ end
30
+ end
31
+
32
+ def self.detect_from_file(filename, regex)
33
+ if File.exist?(filename)
34
+ match = IO.read(filename).match(regex)
35
+ match.captures[0] if !match.nil? && match.captures.length.positive?
36
+ else
37
+ raise "unable to find version in #{filename}"
38
+ end
39
+ end
40
+
41
+ def self.set_version_in_file(filename, version)
42
+ text = IO.read(filename)
43
+ new_text = text
44
+ new_text = text.gsub(/version\s?=\s?['|"]([.\d]+)['|"]/, "version='#{version}'") if filename.include?(".gemspec")
45
+ new_text = text.gsub(/<Version>([-\w\d.]+)</, "<Version>#{version}<") if filename.include?(".csproj")
46
+ new_text = text.gsub(/<version>([-\w\d.]+)</, "<version>#{version}<") if filename.include?(".nuspec")
47
+ new_text = text.gsub(/ Version="([\d\.]+)"/, " Version=\"#{version}\"") if filename.include?(".wxs")
48
+ new_text = text.gsub(/version\s+=\s+['"]([\w.]+)['"]/, "version=\"#{version}\"") if filename.include?(".toml")
49
+ File.open(filename, "w") { |f| f.write(new_text) } if new_text != text
50
+ end
51
+ end
52
+ end
data/lib/makit/wix.rb CHANGED
@@ -1,95 +1,95 @@
1
- require "securerandom"
2
-
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 Wix
14
- def self.setup
15
- if (Makit::Environment.is_windows?)
16
- # test if dotnet is installed
17
- if !Makit::DotNet::is_installed? # !File.exist?(Makit::Environment.which("dotnet"))
18
- puts "dotnet does not appear to be installed"
19
- else
20
- # test if wix is already installed
21
- if !`dotnet tool list --global`.include?("wix")
22
- "dotnet tool install --global wix".run
23
- end
24
- puts " Wix version " + "#{Wix::version}".colorize(:green)
25
- # display the link to https://wixtoolset.org/
26
- puts " https://wixtoolset.org/".colorize(:green)
27
- # display the link to https://marketplace.visualstudio.com/items?itemName=FireGiant.FireGiantHeatWaveDev17
28
- puts " https://marketplace.visualstudio.com/items?itemName=FireGiant.FireGiantHeatWaveDev17".colorize(:green)
29
- end
30
- else
31
- puts "Wix is not supported on non-Windows platforms"
32
- end
33
- end
34
-
35
- def self.version
36
- `wix --version`.strip.split("+").first
37
- end
38
-
39
- def self.setup_package(name, path, files)
40
- # create the path if it does not exist
41
- FileUtils.mkdir_p(path) unless File.directory?(path)
42
- # create the #{name}.wixproj file
43
- File.open("#{path}/#{name}.wixproj", "w") do |f|
44
- f.puts "<Project Sdk=\"WixToolset.Sdk/#{Wix::version}\">"
45
- f.puts "</Project>"
46
- end
47
- # create the Package.wxs file
48
- File.open("#{path}/Package.wxs", "w") do |f|
49
- f.puts "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">"
50
- f.puts " <Package Name=\"#{name}\" Manufacturer=\"Acme\" Version=\"0.0.0.0\" UpgradeCode=\"#{SecureRandom.uuid}\">"
51
- #f.puts " <MajorUpgrade DowngradeErrorMessage=\"!(loc.DowngradeError)\" />"
52
- f.puts " <Files Include=\"#{files}\" />"
53
- #f.puts " <Feature Id=\"Main\">"
54
- #f.puts " <ComponentGroupRef Id=\"Components\" />"
55
- #f.puts " </Feature>"
56
- f.puts " </Package>"
57
- f.puts "</Wix>"
58
- end
59
- end
60
- end # class Wix
61
- end # module Makit
62
-
63
- # Package.wxs with File harvesting
64
- #<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
65
- # <Package Name="MyProduct" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B0B15C00-1DC4-0374-A1D1-E902240936D5">
66
- # <Files Include="path\to\files\**" />
67
- # </Package>
68
- #</Wix>
69
-
70
- #<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
71
- # <Package Name="Msi.Demo" Manufacturer="Acme" Version="1.0.0.0" UpgradeCode="a87571ec-8be3-447e-ae23-b3a94a85b727">
72
- # <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
73
-
74
- # <Feature Id="Main">
75
- # <ComponentGroupRef Id="Components" />
76
- # </Feature>
77
- # </Package>
78
- #</Wix>
79
-
80
- #<Project Sdk="WixToolset.Sdk/5.0.1">
81
- #</Project>
82
-
83
- # Components.wxs
84
- #<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
85
- # <Fragment>
86
- # <ComponentGroup Id="Components" Directory="INSTALLFOLDER">
87
- # <Component Guid="b8085fb3-3718-46df-8bf6-ecf9f968dd3d">
88
- # <File Source="../../artifacts/Msi.Demo.exe" />
89
- # <File Source="../../artifacts/Msi.Demo.dll" />
90
- # <File Source="../../artifacts/Msi.Demo.deps.json" />
91
- # <File Source="../../artifacts/Msi.Demo.runtimeconfig.json" />
92
- # </Component>
93
- # </ComponentGroup>
94
- # </Fragment>
95
- #</Wix>
1
+ require "securerandom"
2
+
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 Wix
14
+ def self.setup
15
+ if (Makit::Environment.is_windows?)
16
+ # test if dotnet is installed
17
+ if !Makit::DotNet::is_installed? # !File.exist?(Makit::Environment.which("dotnet"))
18
+ puts "dotnet does not appear to be installed"
19
+ else
20
+ # test if wix is already installed
21
+ if !`dotnet tool list --global`.include?("wix")
22
+ "dotnet tool install --global wix".run
23
+ end
24
+ puts " Wix version " + "#{Wix::version}".colorize(:green)
25
+ # display the link to https://wixtoolset.org/
26
+ puts " https://wixtoolset.org/".colorize(:green)
27
+ # display the link to https://marketplace.visualstudio.com/items?itemName=FireGiant.FireGiantHeatWaveDev17
28
+ puts " https://marketplace.visualstudio.com/items?itemName=FireGiant.FireGiantHeatWaveDev17".colorize(:green)
29
+ end
30
+ else
31
+ puts "Wix is not supported on non-Windows platforms"
32
+ end
33
+ end
34
+
35
+ def self.version
36
+ `wix --version`.strip.split("+").first
37
+ end
38
+
39
+ def self.setup_package(name, path, files)
40
+ # create the path if it does not exist
41
+ FileUtils.mkdir_p(path) unless File.directory?(path)
42
+ # create the #{name}.wixproj file
43
+ File.open("#{path}/#{name}.wixproj", "w") do |f|
44
+ f.puts "<Project Sdk=\"WixToolset.Sdk/#{Wix::version}\">"
45
+ f.puts "</Project>"
46
+ end
47
+ # create the Package.wxs file
48
+ File.open("#{path}/Package.wxs", "w") do |f|
49
+ f.puts "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">"
50
+ f.puts " <Package Name=\"#{name}\" Manufacturer=\"Acme\" Version=\"0.0.0.0\" UpgradeCode=\"#{SecureRandom.uuid}\">"
51
+ #f.puts " <MajorUpgrade DowngradeErrorMessage=\"!(loc.DowngradeError)\" />"
52
+ f.puts " <Files Include=\"#{files}\" />"
53
+ #f.puts " <Feature Id=\"Main\">"
54
+ #f.puts " <ComponentGroupRef Id=\"Components\" />"
55
+ #f.puts " </Feature>"
56
+ f.puts " </Package>"
57
+ f.puts "</Wix>"
58
+ end
59
+ end
60
+ end # class Wix
61
+ end # module Makit
62
+
63
+ # Package.wxs with File harvesting
64
+ #<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
65
+ # <Package Name="MyProduct" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B0B15C00-1DC4-0374-A1D1-E902240936D5">
66
+ # <Files Include="path\to\files\**" />
67
+ # </Package>
68
+ #</Wix>
69
+
70
+ #<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
71
+ # <Package Name="Msi.Demo" Manufacturer="Acme" Version="1.0.0.0" UpgradeCode="a87571ec-8be3-447e-ae23-b3a94a85b727">
72
+ # <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
73
+
74
+ # <Feature Id="Main">
75
+ # <ComponentGroupRef Id="Components" />
76
+ # </Feature>
77
+ # </Package>
78
+ #</Wix>
79
+
80
+ #<Project Sdk="WixToolset.Sdk/5.0.1">
81
+ #</Project>
82
+
83
+ # Components.wxs
84
+ #<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
85
+ # <Fragment>
86
+ # <ComponentGroup Id="Components" Directory="INSTALLFOLDER">
87
+ # <Component Guid="b8085fb3-3718-46df-8bf6-ecf9f968dd3d">
88
+ # <File Source="../../artifacts/Msi.Demo.exe" />
89
+ # <File Source="../../artifacts/Msi.Demo.dll" />
90
+ # <File Source="../../artifacts/Msi.Demo.deps.json" />
91
+ # <File Source="../../artifacts/Msi.Demo.runtimeconfig.json" />
92
+ # </Component>
93
+ # </ComponentGroup>
94
+ # </Fragment>
95
+ #</Wix>
data/lib/makit/zip.rb CHANGED
@@ -1,17 +1,17 @@
1
- # frozen_string_literal: true
2
-
3
- require "zip"
4
- require "fileutils"
5
-
6
- module Makit
7
- # Zip a directory
8
- class Zip
9
- def self.zip_directory(directory, zip_file)
10
- ::Zip::File.open(zip_file, ::Zip::File::CREATE) do |zipfile|
11
- Dir[File.join(directory, "**", "**")].each do |file|
12
- zipfile.add(file.sub("#{directory}/", ""), file)
13
- end
14
- end
15
- end
16
- end
17
- end
1
+ # frozen_string_literal: true
2
+
3
+ require "zip"
4
+ require "fileutils"
5
+
6
+ module Makit
7
+ # Zip a directory
8
+ class Zip
9
+ def self.zip_directory(directory, zip_file)
10
+ ::Zip::File.open(zip_file, ::Zip::File::CREATE) do |zipfile|
11
+ Dir[File.join(directory, "**", "**")].each do |file|
12
+ zipfile.add(file.sub("#{directory}/", ""), file)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end