makit 0.0.0 → 0.0.2

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 (81) 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 +274 -237
  14. data/lib/makit/commands.rb +21 -21
  15. data/lib/makit/content/default_gitignore.rb +5 -5
  16. data/lib/makit/content/default_rakefile.rb +11 -11
  17. data/lib/makit/content/gem_rakefile.rb +14 -14
  18. data/lib/makit/data.rb +50 -50
  19. data/lib/makit/directories.rb +140 -140
  20. data/lib/makit/directory.rb +151 -120
  21. data/lib/makit/dotnet.rb +83 -16
  22. data/lib/makit/environment.rb +123 -123
  23. data/lib/makit/files.rb +47 -47
  24. data/lib/makit/git.rb +66 -66
  25. data/lib/makit/gitlab_runner.rb +60 -60
  26. data/lib/makit/humanize.rb +89 -89
  27. data/lib/makit/logging.rb +96 -96
  28. data/lib/makit/markdown.rb +75 -75
  29. data/lib/makit/mp/basic_object_mp.rb +16 -16
  30. data/lib/makit/mp/command_request.mp.rb +13 -0
  31. data/lib/makit/mp/project_mp.rb +156 -160
  32. data/lib/makit/mp/string_mp.rb +101 -101
  33. data/lib/makit/nuget.rb +57 -57
  34. data/lib/makit/protoc.rb +61 -61
  35. data/lib/makit/serializer.rb +115 -70
  36. data/lib/makit/storage.rb +131 -131
  37. data/lib/makit/symbols.rb +149 -149
  38. data/lib/makit/tasks.rb +67 -63
  39. data/lib/makit/tree.rb +37 -37
  40. data/lib/makit/v1/makit.v1_pb.rb +5 -5
  41. data/lib/makit/v1/makit.v1_services_pb.rb +25 -26
  42. data/lib/makit/version.rb +12 -12
  43. data/lib/makit/wix.rb +95 -92
  44. data/lib/makit/zip.rb +17 -17
  45. data/lib/makit.rb +243 -243
  46. metadata +8 -43
  47. data/.makit.project.json +0 -4
  48. data/.makit.project.yml +0 -2
  49. data/.rubocop.yml +0 -22
  50. data/.ruby-version +0 -1
  51. data/CHANGELOG.md +0 -8
  52. data/CODE_OF_CONDUCT.md +0 -84
  53. data/LICENSE +0 -21
  54. data/README.md +0 -119
  55. data/Rakefile +0 -190
  56. data/docs/Commands.md +0 -50
  57. data/docs_/Commands.md +0 -166
  58. data/docs_/Minitest.Timeouts.md +0 -332
  59. data/examples/protoc/Rakefile +0 -31
  60. data/examples/rake_default/Rakefile +0 -5
  61. data/examples/rubygem-foo/.gitkeep +0 -0
  62. data/examples/rubygem-foo/Rakefile +0 -3
  63. data/examples/run_mp/Rakefile +0 -8
  64. data/exe/makit +0 -5
  65. data/lib/makit/content/default_gitignore.txt +0 -222
  66. data/lib/makit/content/ruby_gitlab-ci.yml +0 -15
  67. data/lib/makit/v1/makit.v1.proto +0 -103
  68. data/makit.generated.sln +0 -30
  69. data/makit.sln +0 -69
  70. data/pages/.gitignore +0 -5
  71. data/pages/404.html +0 -25
  72. data/pages/Gemfile +0 -33
  73. data/pages/Gemfile.lock +0 -88
  74. data/pages/_config.yml +0 -55
  75. data/pages/_layouts/default.html +0 -1
  76. data/pages/_posts/2024-10-05-welcome-to-jekyll.markdown +0 -29
  77. data/pages/about.markdown +0 -18
  78. data/pages/index.markdown +0 -6
  79. data/sig/makit.rbs +0 -4
  80. data/src/ClassLib/Class1.cs +0 -6
  81. data/src/ClassLib/ClassLib.csproj +0 -13
data/lib/makit/tasks.rb CHANGED
@@ -1,63 +1,67 @@
1
- # frozen_string_literal: true
2
- require "digest"
3
- require "rake/clean"
4
- #require "sqlite3"
5
-
6
- # Register the at_exit hook for cleanup
7
- at_exit do
8
- puts "Performing cleanup for Makit..."
9
- # Add your cleanup code here
10
- # For example, close files, remove temporary files, etc.
11
- # store current state of Makit::PROJECT to a file
12
- #json_filename = File.join(Makit::Directories::PROJECT_ROOT, ".makit.project.json")
13
- #puts "Saving project state to #{json_filename}"
14
- #Makit::PROJECT.save_as(json_filename)
15
- yml_filename = File.join(Makit::Directories::PROJECT_ROOT, ".makit.project.yml")
16
- puts "Saving project state to #{yml_filename}"
17
- Makit::PROJECT.save_as(yml_filename)
18
- end
19
-
20
- # This module provides classes for the Makit gem.
21
- module Makit
22
- # This class provide methods for managing persistent data for the makit gem
23
- class Tasks
24
- def self.run_default_commands(task_name)
25
- Makit::LOGGER.debug("Running default commands for task: #{task_name}")
26
- end
27
- end
28
- end
29
-
30
- desc "Remove any temporary products."
31
- task :clean do
32
- puts ":clean".colorize(:blue)
33
- Makit::RUNNER.run(Makit::RUNNER.parse_command_request("git clean -dXf"))
34
- end
35
-
36
- desc "Integrate changes into the git repository."
37
- task :integrate do
38
- puts ":integrate".colorize(:blue)
39
- Makit::Git.integrate
40
- end
41
-
42
- desc "Sync changes with the git repository."
43
- task :sync do
44
- puts ":sync".colorize(:blue)
45
- Makit::Git.sync
46
- end
47
-
48
- desc "Format source code."
49
- task :format do
50
- puts ":format".colorize(:blue)
51
- Makit::RUNNER.try("rufo .") if File.exist?("Gemfile") || File.exist?("Rakefile")
52
- end
53
-
54
- desc "Update dependencies."
55
- task :update do
56
- puts ":update".colorize(:blue)
57
- system("bundle update") if File.exist?("Gemfile")
58
- # glob all *.csproj files
59
- Dir.glob("**/*.csproj").each do |file|
60
- "dotnet format #{file}".run
61
- end
62
- end
63
-
1
+ # frozen_string_literal: true
2
+ require "digest"
3
+ require "rake/clean"
4
+ #require "sqlite3"
5
+
6
+ # Register the at_exit hook for cleanup
7
+ at_exit do
8
+ puts "Performing cleanup for Makit..."
9
+ # Add your cleanup code here
10
+ # For example, close files, remove temporary files, etc.
11
+ # store current state of Makit::PROJECT to a file
12
+ #json_filename = File.join(Makit::Directories::PROJECT_ROOT, ".makit.project.json")
13
+ #puts "Saving project state to #{json_filename}"
14
+ #Makit::PROJECT.save_as(json_filename)
15
+ #yml_filename = File.join(Makit::Directories::PROJECT_ROOT, ".makit.project.yml")
16
+ #puts "Saving project state to #{yml_filename}"
17
+ # Makit::PROJECT.save_as(yml_filename)
18
+ end
19
+
20
+ # This module provides classes for the Makit gem.
21
+ module Makit
22
+ # This class provide methods for managing persistent data for the makit gem
23
+ class Tasks
24
+ def self.run_default_commands(task_name)
25
+ Makit::LOGGER.debug("Running default commands for task: #{task_name}")
26
+ end
27
+ end
28
+ end
29
+
30
+ desc "Remove any temporary products."
31
+ task :clean do
32
+ puts ":clean".colorize(:blue)
33
+ Makit::RUNNER.run(Makit::RUNNER.parse_command_request("git clean -dXf"))
34
+ end
35
+
36
+ desc "Integrate changes into the git repository."
37
+ task :integrate do
38
+ puts ":integrate".colorize(:blue)
39
+ Makit::Git.integrate
40
+ end
41
+
42
+ desc "Sync changes with the git repository."
43
+ task :sync do
44
+ puts ":sync".colorize(:blue)
45
+ Makit::Git.sync
46
+ end
47
+
48
+ desc "Format source code."
49
+ task :format do
50
+ puts ":format".colorize(:blue)
51
+ Makit::RUNNER.try("rufo .") if File.exist?("Gemfile") || File.exist?("Rakefile")
52
+ end
53
+
54
+ desc "Update dependencies."
55
+ task :update do
56
+ puts ":update".colorize(:blue)
57
+ system("bundle update") if File.exist?("Gemfile")
58
+ # glob all *.csproj files
59
+ Dir.glob("**/*.csproj").each do |file|
60
+ "dotnet format #{file}".run
61
+ end
62
+ end
63
+
64
+ # Register the at_exit hook for cleanup
65
+ at_exit do
66
+ puts "at_exit in tasks.rb...."
67
+ end
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
@@ -2,13 +2,12 @@
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: lib/makit/v1/makit.v1.proto
4
4
 
5
- require 'google/protobuf'
5
+ require "google/protobuf"
6
6
 
7
- require 'google/protobuf/timestamp_pb'
8
- require 'google/protobuf/duration_pb'
7
+ require "google/protobuf/timestamp_pb"
8
+ require "google/protobuf/duration_pb"
9
9
 
10
-
11
- descriptor_data = "\n\x1blib/makit/v1/makit.v1.proto\x12\x08makit.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\"?\n\rDotNetProject\x12\x10\n\x08template\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06output\x18\x03 \x01(\t\"a\n\x07Project\x12\x16\n\x0egit_remote_url\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x30\n\x0f\x64otnet_projects\x18\x05 \x03(\x0b\x32\x17.makit.v1.DotNetProject\"\xa5\x01\n\x0e\x43ommandRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\targuments\x18\x02 \x03(\t\x12+\n\x07timeout\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tdirectory\x18\x04 \x01(\t\x12\x0c\n\x04task\x18\x05 \x01(\t\x12\r\n\x05input\x18\x06 \x01(\x0c\x12\x15\n\rexit_on_error\x18\x07 \x01(\x08\"\x91\x02\n\x07\x43ommand\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\targuments\x18\x03 \x03(\t\x12\x11\n\texit_code\x18\x04 \x01(\x05\x12\r\n\x05input\x18\x05 \x01(\x0c\x12\x0e\n\x06output\x18\x06 \x01(\x0c\x12\r\n\x05\x65rror\x18\x07 \x01(\x0c\x12.\n\nstarted_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x08\x64uration\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0c\n\x04user\x18\n \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x0b \x01(\t\x12\n\n\x02os\x18\x0c \x01(\t\x12\x11\n\tdirectory\x18\r \x01(\t\"I\n\rConfiguration\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x08\x63ommands\x18\x02 \x03(\x0b\x32\x18.makit.v1.CommandRequest\"3\n\rGitRepository\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rrelative_path\x18\x02 \x01(\t\"h\n\x0bGitLogEntry\x12\x0e\n\x06\x63ommit\x18\x01 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x02 \x01(\t\x12(\n\x04\x64\x61te\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07message\x18\x04 \x01(\t\"\xc8\x01\n\nMakeResult\x12\x12\n\nrepository\x18\x01 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0b\n\x03tag\x18\x04 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x05 \x01(\t\x12\x1a\n\x12runtime_identifier\x18\x06 \x01(\t\x12#\n\x08\x63ommands\x18\x07 \x03(\x0b\x32\x11.makit.v1.Command\x12\x14\n\x0cinitial_size\x18\x08 \x01(\x05\x12\x12\n\nfinal_size\x18\t \x01(\x05\"?\n\rDotNetNewArgs\x12\x10\n\x08template\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06output\x18\x03 \x01(\t**\n\x08Language\x12\x08\n\x04RUBY\x10\x00\x12\n\n\x06\x43SHARP\x10\x01\x12\x08\n\x04RUST\x10\x02*,\n\x0bPackageType\x12\x07\n\x03GEM\x10\x00\x12\t\n\x05NUGET\x10\x01\x12\t\n\x05\x43RATE\x10\x03\x32H\n\x0e\x43ommandService\x12\x36\n\x07\x45xecute\x12\x18.makit.v1.CommandRequest\x1a\x11.makit.v1.Commandb\x06proto3"
10
+ descriptor_data = "\n\x1blib/makit/v1/makit.v1.proto\x12\x08makit.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\"\x8c\x01\n\rDotNetProject\x12\x10\n\x08template\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06output\x18\x03 \x01(\t\x12\x10\n\x08packages\x18\x04 \x03(\t\x12\n\n\x02os\x18\x05 \x01(\t\x12-\n\nbuild_args\x18\x06 \x03(\x0b\x32\x19.makit.v1.DotNetBuildArgs\"8\n\x0f\x44otNetBuildArgs\x12\x15\n\rconfiguration\x18\x01 \x01(\t\x12\x0e\n\x06output\x18\x02 \x01(\t\"a\n\x07Project\x12\x16\n\x0egit_remote_url\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x30\n\x0f\x64otnet_projects\x18\x05 \x03(\x0b\x32\x17.makit.v1.DotNetProject\"\xa5\x01\n\x0e\x43ommandRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\targuments\x18\x02 \x03(\t\x12+\n\x07timeout\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tdirectory\x18\x04 \x01(\t\x12\x0c\n\x04task\x18\x05 \x01(\t\x12\r\n\x05input\x18\x06 \x01(\x0c\x12\x15\n\rexit_on_error\x18\x07 \x01(\x08\"\x91\x02\n\x07\x43ommand\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\targuments\x18\x03 \x03(\t\x12\x11\n\texit_code\x18\x04 \x01(\x05\x12\r\n\x05input\x18\x05 \x01(\x0c\x12\x0e\n\x06output\x18\x06 \x01(\x0c\x12\r\n\x05\x65rror\x18\x07 \x01(\x0c\x12.\n\nstarted_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x08\x64uration\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0c\n\x04user\x18\n \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x0b \x01(\t\x12\n\n\x02os\x18\x0c \x01(\t\x12\x11\n\tdirectory\x18\r \x01(\t\"I\n\rConfiguration\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x08\x63ommands\x18\x02 \x03(\x0b\x32\x18.makit.v1.CommandRequest\"3\n\rGitRepository\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rrelative_path\x18\x02 \x01(\t\"h\n\x0bGitLogEntry\x12\x0e\n\x06\x63ommit\x18\x01 \x01(\t\x12\x0e\n\x06\x61uthor\x18\x02 \x01(\t\x12(\n\x04\x64\x61te\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07message\x18\x04 \x01(\t\"\xc8\x01\n\nMakeResult\x12\x12\n\nrepository\x18\x01 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0b\n\x03tag\x18\x04 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x05 \x01(\t\x12\x1a\n\x12runtime_identifier\x18\x06 \x01(\t\x12#\n\x08\x63ommands\x18\x07 \x03(\x0b\x32\x11.makit.v1.Command\x12\x14\n\x0cinitial_size\x18\x08 \x01(\x05\x12\x12\n\nfinal_size\x18\t \x01(\x05\"?\n\rDotNetNewArgs\x12\x10\n\x08template\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06output\x18\x03 \x01(\t**\n\x08Language\x12\x08\n\x04RUBY\x10\x00\x12\n\n\x06\x43SHARP\x10\x01\x12\x08\n\x04RUST\x10\x02*,\n\x0bPackageType\x12\x07\n\x03GEM\x10\x00\x12\t\n\x05NUGET\x10\x01\x12\t\n\x05\x43RATE\x10\x03\x32H\n\x0e\x43ommandService\x12\x36\n\x07\x45xecute\x12\x18.makit.v1.CommandRequest\x1a\x11.makit.v1.Commandb\x06proto3"
12
11
 
13
12
  pool = Google::Protobuf::DescriptorPool.generated_pool
14
13
  pool.add_serialized_file(descriptor_data)
@@ -16,6 +15,7 @@ pool.add_serialized_file(descriptor_data)
16
15
  module Makit
17
16
  module V1
18
17
  DotNetProject = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.DotNetProject").msgclass
18
+ DotNetBuildArgs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.DotNetBuildArgs").msgclass
19
19
  Project = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.Project").msgclass
20
20
  CommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.CommandRequest").msgclass
21
21
  Command = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("makit.v1.Command").msgclass
@@ -1,26 +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
-
13
- include ::GRPC::GenericService
14
-
15
- self.marshal_class_method = :encode
16
- self.unmarshal_class_method = :decode
17
- self.service_name = 'makit.v1.CommandService'
18
-
19
- # Execute a command on a device.
20
- rpc :Execute, ::Makit::V1::CommandRequest, ::Makit::V1::Command
21
- end
22
-
23
- Stub = Service.rpc_stub_class
24
- end
25
- end
26
- 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,12 +1,12 @@
1
- # frozen_string_literal: true
2
-
3
- module Makit
4
- VERSION = "0.0.0"
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
- end
12
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ VERSION = "0.0.2"
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
+ end
12
+ end
data/lib/makit/wix.rb CHANGED
@@ -1,92 +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
- "dotnet tool install --global wix".run
21
- puts " Wix version " + "#{Wix::version}".colorize(:green)
22
- # display the link to https://wixtoolset.org/
23
- puts " https://wixtoolset.org/".colorize(:green)
24
- # display the link to https://marketplace.visualstudio.com/items?itemName=FireGiant.FireGiantHeatWaveDev17
25
- puts " https://marketplace.visualstudio.com/items?itemName=FireGiant.FireGiantHeatWaveDev17".colorize(:green)
26
- end
27
- else
28
- puts "Wix is not supported on non-Windows platforms"
29
- end
30
- end
31
-
32
- def self.version
33
- `wix --version`.strip.split("+").first
34
- end
35
-
36
- def self.setup_package(name, path, files)
37
- # create the path if it does not exist
38
- FileUtils.mkdir_p(path) unless File.directory?(path)
39
- # create the #{name}.wixproj file
40
- File.open("#{path}/#{name}.wixproj", "w") do |f|
41
- f.puts "<Project Sdk=\"WixToolset.Sdk/#{Wix::version}\">"
42
- f.puts "</Project>"
43
- end
44
- # create the Package.wxs file
45
- File.open("#{path}/Package.wxs", "w") do |f|
46
- f.puts "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">"
47
- f.puts " <Package Name=\"#{name}\" Manufacturer=\"Acme\" Version=\"0.0.0.0\" UpgradeCode=\"#{SecureRandom.uuid}\">"
48
- #f.puts " <MajorUpgrade DowngradeErrorMessage=\"!(loc.DowngradeError)\" />"
49
- f.puts " <Files Include=\"#{files}\" />"
50
- #f.puts " <Feature Id=\"Main\">"
51
- #f.puts " <ComponentGroupRef Id=\"Components\" />"
52
- #f.puts " </Feature>"
53
- f.puts " </Package>"
54
- f.puts "</Wix>"
55
- end
56
- end
57
- end # class Wix
58
- end # module Makit
59
-
60
- # Package.wxs with File harvesting
61
- #<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
62
- # <Package Name="MyProduct" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B0B15C00-1DC4-0374-A1D1-E902240936D5">
63
- # <Files Include="path\to\files\**" />
64
- # </Package>
65
- #</Wix>
66
-
67
- #<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
68
- # <Package Name="Msi.Demo" Manufacturer="Acme" Version="1.0.0.0" UpgradeCode="a87571ec-8be3-447e-ae23-b3a94a85b727">
69
- # <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
70
-
71
- # <Feature Id="Main">
72
- # <ComponentGroupRef Id="Components" />
73
- # </Feature>
74
- # </Package>
75
- #</Wix>
76
-
77
- #<Project Sdk="WixToolset.Sdk/5.0.1">
78
- #</Project>
79
-
80
- # Components.wxs
81
- #<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
82
- # <Fragment>
83
- # <ComponentGroup Id="Components" Directory="INSTALLFOLDER">
84
- # <Component Guid="b8085fb3-3718-46df-8bf6-ecf9f968dd3d">
85
- # <File Source="../../artifacts/Msi.Demo.exe" />
86
- # <File Source="../../artifacts/Msi.Demo.dll" />
87
- # <File Source="../../artifacts/Msi.Demo.deps.json" />
88
- # <File Source="../../artifacts/Msi.Demo.runtimeconfig.json" />
89
- # </Component>
90
- # </ComponentGroup>
91
- # </Fragment>
92
- #</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