makit 0.0.83 → 0.0.85

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 (60) 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 +144 -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 +219 -219
  27. data/lib/makit/email.rb +61 -61
  28. data/lib/makit/environment.rb +131 -131
  29. data/lib/makit/fileinfo.rb +26 -26
  30. data/lib/makit/files.rb +47 -47
  31. data/lib/makit/git.rb +145 -145
  32. data/lib/makit/gitlab_runner.rb +60 -60
  33. data/lib/makit/humanize.rb +129 -129
  34. data/lib/makit/indexer.rb +56 -56
  35. data/lib/makit/logging.rb +106 -106
  36. data/lib/makit/markdown.rb +75 -75
  37. data/lib/makit/mp/basic_object_mp.rb +16 -16
  38. data/lib/makit/mp/command_mp.rb +13 -13
  39. data/lib/makit/mp/command_request.mp.rb +16 -16
  40. data/lib/makit/mp/project_mp.rb +210 -210
  41. data/lib/makit/mp/string_mp.rb +137 -137
  42. data/lib/makit/nuget.rb +72 -72
  43. data/lib/makit/process.rb +26 -26
  44. data/lib/makit/protoc.rb +104 -104
  45. data/lib/makit/rake.rb +25 -25
  46. data/lib/makit/secrets.rb +51 -51
  47. data/lib/makit/serializer.rb +115 -115
  48. data/lib/makit/show.rb +110 -110
  49. data/lib/makit/storage.rb +131 -131
  50. data/lib/makit/symbols.rb +149 -149
  51. data/lib/makit/task_info.rb +86 -86
  52. data/lib/makit/tasks.rb +158 -144
  53. data/lib/makit/tree.rb +37 -37
  54. data/lib/makit/v1/makit.v1_services_pb.rb +25 -25
  55. data/lib/makit/version.rb +64 -65
  56. data/lib/makit/wix.rb +95 -95
  57. data/lib/makit/yaml.rb +17 -17
  58. data/lib/makit/zip.rb +17 -17
  59. data/lib/makit.rb +267 -267
  60. metadata +5 -3
data/lib/makit/tasks.rb CHANGED
@@ -1,144 +1,158 @@
1
- # frozen_string_literal: true
2
- require "digest"
3
- require "rake/clean"
4
- #require "sqlite3"
5
-
6
- # This module provides classes for the Makit gem.
7
- module Makit
8
- # This class provide methods for managing persistent data for the makit gem
9
- class Tasks
10
- def self.run_default_commands(task_name)
11
- Makit::LOGGER.debug("Running default commands for task: #{task_name}")
12
- end
13
- end
14
- end
15
-
16
- desc "Remove any temporary products."
17
- task :clean do
18
- Makit::SHOW.task(:clean)
19
- Makit::RUNNER.run(Makit::RUNNER.parse_command_request("git clean -dXf"))
20
- end
21
-
22
- desc "Integrate changes into the git repository."
23
- task :integrate do
24
- Makit::TaskInfo.track(:integrate) do
25
- unstaged_files = Makit::Git.unstaged_files
26
- untracked_files = Makit::Git.untracked_files
27
- if unstaged_files.length > 0 || untracked_files.length > 0
28
- Makit::Git.integrate
29
- else
30
- puts " No unstaged or untracked files found".colorize(:grey)
31
- end
32
- end
33
- end
34
-
35
- #
36
- # Tag task
37
- #
38
- desc "tag the current version"
39
- task :tag do
40
- Makit::TaskInfo.track(:tag) do
41
- # check if the variable VERSION is defined
42
- if !defined?(VERSION)
43
- puts " VERSION is not defined".colorize(:red)
44
- return
45
- end
46
-
47
- Makit::Git.tag(VERSION)
48
- end
49
- end
50
-
51
- desc "Sync changes with the git repository."
52
- task :sync => [:integrate, :pull_incoming] do
53
- Makit::TaskInfo.track(:sync) do
54
- #Makit::SHOW.task(:sync)
55
- Makit::Git.sync
56
- end
57
- end
58
-
59
- task :pull do
60
- Makit::SHOW.task(:pull)
61
- Makit::Git.pull
62
- end
63
-
64
- desc "pull changes from the remote branch, preferring incoming changes for conflicts"
65
- task :pull_incoming do
66
- Makit::TaskInfo.track(:pull_incoming) do
67
- #Makit::SHOW.task(:pull_incoming)
68
- puts " git branch is ".colorize(:grey) + "#{Makit::Git.branch}".colorize(:green)
69
- "git pull origin #{Makit::Git.branch} -X theirs".try
70
- end
71
- end
72
-
73
- desc "Format source code."
74
- task :format do
75
- Makit::SHOW.task(:format)
76
- Makit::RUNNER.try("rufo .") if File.exist?("Gemfile") || File.exist?("Rakefile")
77
- end
78
-
79
- #
80
- # Update docs task
81
- #
82
- desc "update the docs for the project"
83
- task :update_docs do
84
- Makit::TaskInfo.track(:update_docs) do
85
- mod_time = Makit::GIT_FILE_INFOS.select {
86
- |file|
87
- file.name.include?("src/" || file.name.include?("test/") || file.name.include?("artifacts/"))
88
- }.first.mtime
89
- if (Makit::Git.untracked_files.length > 0 ||
90
- Makit::Git.unstaged_files.length > 0)
91
- File.delete("docs/Rake.md") if File.exist?("docs/Rake.md")
92
- File.delete("docs/Files.md") if File.exist?("docs/Files.md")
93
- end
94
-
95
- Makit::Docs::Rake.generate if File.exist?("docs/Rake.md")
96
- Makit::Docs::Files.generate if File.exist?("docs/Files.md")
97
- Makit::DotNet.generate_docs
98
- end
99
- end
100
-
101
- desc "Update dependencies."
102
- task :update do
103
- Makit::SHOW.task(:update)
104
- yesterday = Time.now - 24 * 60 * 60
105
- system("bundle update") if File.exist?("Gemfile")
106
- # glob all *.csproj files
107
- Dir.glob("**/*.csproj").each do |file|
108
- "dotnet format #{file}".cache_try(yesterday)
109
- end
110
- end
111
-
112
- # Register the at_exit hook for cleanup
113
- at_exit do
114
- #puts "at_exit in tasks.rb...."
115
-
116
- puts " "
117
-
118
- if (Makit::Docs::Rake.get_top_task_name == "default")
119
- # let define some properties
120
- properties = {
121
- "version" => (defined?(VERSION) ? VERSION : ""),
122
- "branch" => Makit::Git.branch,
123
- "user" => ENV["USER"],
124
- "machine" => ENV["COMPUTERNAME"],
125
- "os" => ENV["OS"],
126
- "largest src" => (tracked = Makit::Git.get_file_infos).empty? ? "none" : tracked.max_by(&:size).name,
127
- "largest src size" => (tracked = Makit::Git.get_file_infos).empty? ? "0 bytes" : Makit::Humanize.get_humanized_size(tracked.max_by(&:size).size),
128
- "largest artifact" => (untracked = Makit::Git.get_untracked_file_infos).empty? ? "none" : untracked.max_by(&:size).name,
129
- "largest artifact size" => (untracked = Makit::Git.get_untracked_file_infos).empty? ? "0 bytes" : Makit::Humanize.get_humanized_size(untracked.max_by(&:size).size),
130
- "slowest task" => Makit::TaskInfo.slowest_task_name,
131
- }
132
-
133
- # display the properties as a table, right justify the key to 20 characters
134
- properties.each do |key, value|
135
- puts " #{key.ljust(25)} ".colorize(:grey) + "#{value}".colorize(:green)
136
- end
137
- puts " "
138
- end
139
-
140
- # display the duration
141
-
142
- duration = Time.now - Makit::STARTTIME
143
- puts " rake #{Makit::Docs::Rake.get_top_task_name}".colorize(:green) + " on branch ".colorize(:grey) + "#{Makit::Git.branch}".colorize(:green) + " completed in ".colorize(:grey) + Makit::Humanize.get_humanized_duration(duration).colorize(:green)
144
- end
1
+ # frozen_string_literal: true
2
+ require "digest"
3
+ require "rake/clean"
4
+ #require "sqlite3"
5
+
6
+ # This module provides classes for the Makit gem.
7
+ module Makit
8
+ # This class provide methods for managing persistent data for the makit gem
9
+ class Tasks
10
+ def self.run_default_commands(task_name)
11
+ Makit::LOGGER.debug("Running default commands for task: #{task_name}")
12
+ end
13
+ end
14
+ end
15
+
16
+ desc "Remove any temporary products."
17
+ task :clean do
18
+ Makit::SHOW.task(:clean)
19
+ Makit::RUNNER.run(Makit::RUNNER.parse_command_request("git clean -dXf"))
20
+ end
21
+
22
+ desc "Integrate changes into the git repository."
23
+ task :integrate do
24
+ Makit::TaskInfo.track(:integrate) do
25
+ unstaged_files = Makit::Git.unstaged_files
26
+ untracked_files = Makit::Git.untracked_files
27
+ if unstaged_files.length > 0 || untracked_files.length > 0
28
+ Makit::Git.integrate
29
+ else
30
+ puts " No unstaged or untracked files found".colorize(:grey)
31
+ end
32
+ end
33
+ end
34
+
35
+ #
36
+ # Tag task
37
+ #
38
+ desc "tag the current version"
39
+ task :tag do
40
+ Makit::TaskInfo.track(:tag) do
41
+ # check if the variable VERSION is defined
42
+ if !defined?(VERSION)
43
+ puts " VERSION is not defined".colorize(:red)
44
+ return
45
+ end
46
+
47
+ Makit::Git.tag(VERSION)
48
+ end
49
+ end
50
+
51
+ desc "Sync changes with the git repository."
52
+ task :sync => [:integrate, :pull_incoming] do
53
+ Makit::TaskInfo.track(:sync) do
54
+ #Makit::SHOW.task(:sync)
55
+ Makit::Git.sync
56
+ end
57
+ end
58
+
59
+ task :pull do
60
+ Makit::SHOW.task(:pull)
61
+ Makit::Git.pull
62
+ end
63
+
64
+ desc "pull changes from the remote branch, preferring incoming changes for conflicts"
65
+ task :pull_incoming do
66
+ Makit::TaskInfo.track(:pull_incoming) do
67
+ #Makit::SHOW.task(:pull_incoming)
68
+ puts " git branch is ".colorize(:grey) + "#{Makit::Git.branch}".colorize(:green)
69
+ "git pull origin #{Makit::Git.branch} -X theirs".try
70
+ end
71
+ end
72
+
73
+ desc "Format source code."
74
+ task :format do
75
+ Makit::SHOW.task(:format)
76
+ Makit::RUNNER.try("rufo .") if File.exist?("Gemfile") || File.exist?("Rakefile")
77
+ end
78
+
79
+ #
80
+ # Update docs task
81
+ #
82
+ desc "update the docs for the project"
83
+ task :update_docs do
84
+ Makit::TaskInfo.track(:update_docs) do
85
+ mod_time = Makit::GIT_FILE_INFOS.select {
86
+ |file|
87
+ file.name.include?("src/" || file.name.include?("test/") || file.name.include?("artifacts/"))
88
+ }.first.mtime
89
+ if (Makit::Git.untracked_files.length > 0 ||
90
+ Makit::Git.unstaged_files.length > 0)
91
+ File.delete("docs/Rake.md") if File.exist?("docs/Rake.md")
92
+ File.delete("docs/Files.md") if File.exist?("docs/Files.md")
93
+ end
94
+
95
+ Makit::Docs::Rake.generate if File.exist?("docs/Rake.md")
96
+ Makit::Docs::Files.generate if File.exist?("docs/Files.md")
97
+ Makit::DotNet.generate_docs
98
+ end
99
+ end
100
+
101
+ desc "Update dependencies."
102
+ task :update do
103
+ Makit::SHOW.task(:update)
104
+ yesterday = Time.now - 24 * 60 * 60
105
+ system("bundle update") if File.exist?("Gemfile")
106
+ # glob all *.csproj files
107
+ Dir.glob("**/*.csproj").each do |file|
108
+ #"dotnet format #{file}".cache_try(yesterday)
109
+ end
110
+ end
111
+
112
+ task :update do
113
+ Makit::SHOW.task :update
114
+ "rufo .".try
115
+ "dotnet format".run
116
+ "dotnet tool install --global dotnet-outdated-tool".run
117
+ "dotnet outdated --upgrade:Auto .".run
118
+ end
119
+
120
+ task :update_nuget_packages do
121
+ Makit::SHOW.task :update_nuget_packages
122
+ "dotnet tool install --global dotnet-outdated-tool".run
123
+ "dotnet outdated --upgrade:Auto .".run
124
+ end
125
+
126
+ # Register the at_exit hook for cleanup
127
+ at_exit do
128
+ #puts "at_exit in tasks.rb...."
129
+
130
+ puts " "
131
+
132
+ if (Makit::Docs::Rake.get_top_task_name == "default")
133
+ # let define some properties
134
+ properties = {
135
+ "version" => (defined?(VERSION) ? VERSION : ""),
136
+ "branch" => Makit::Git.branch,
137
+ "user" => ENV["USER"],
138
+ "machine" => ENV["COMPUTERNAME"],
139
+ "os" => ENV["OS"],
140
+ "largest src" => (tracked = Makit::Git.get_file_infos).empty? ? "none" : tracked.max_by(&:size).name,
141
+ "largest src size" => (tracked = Makit::Git.get_file_infos).empty? ? "0 bytes" : Makit::Humanize.get_humanized_size(tracked.max_by(&:size).size),
142
+ "largest artifact" => (untracked = Makit::Git.get_untracked_file_infos).empty? ? "none" : untracked.max_by(&:size).name,
143
+ "largest artifact size" => (untracked = Makit::Git.get_untracked_file_infos).empty? ? "0 bytes" : Makit::Humanize.get_humanized_size(untracked.max_by(&:size).size),
144
+ "slowest task" => Makit::TaskInfo.slowest_task_name,
145
+ }
146
+
147
+ # display the properties as a table, right justify the key to 20 characters
148
+ properties.each do |key, value|
149
+ puts " #{key.ljust(25)} ".colorize(:grey) + "#{value}".colorize(:green)
150
+ end
151
+ puts " "
152
+ end
153
+
154
+ # display the duration
155
+
156
+ duration = Time.now - Makit::STARTTIME
157
+ puts " rake #{Makit::Docs::Rake.get_top_task_name}".colorize(:green) + " on branch ".colorize(:grey) + "#{Makit::Git.branch}".colorize(:green) + " completed in ".colorize(:grey) + Makit::Humanize.get_humanized_duration(duration).colorize(:green)
158
+ 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
@@ -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,65 +1,64 @@
1
- # frozen_string_literal: true
2
-
3
- module Makit
4
- VERSION = "0.0.83"
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
- # example content from .gitlab-ci.yml
13
- #variables:
14
- # VERSION: "0.0.26" # Define the version here
15
-
16
- def self.get_version_from_file(path)
17
- if (!File.exist?(path))
18
- raise "file #{path}does not exist"
19
- end
20
-
21
- extension = File.extname(path)
22
- #switch = extension.downcase
23
- #case switch
24
- #if extension == ".csproj"
25
- switch = extension.downcase
26
- case switch
27
- when ".csproj"
28
- Makit::Version.detect_from_file(path, /<Version>([-\w\d.]+)</)
29
- when ".wxs"
30
- Makit::Version.detect_from_file(path, / Version="([\d\.]+)"/)
31
- when ".yml"
32
- Makit::Version.detect_from_file(path, /VERSION:\s*["']?([\d\.]+)["']?/)
33
- else
34
- raise "unrecognized file type"
35
- end
36
- end
37
-
38
- def self.detect_from_file(filename, regex)
39
- if File.exist?(filename)
40
- match = IO.read(filename).match(regex)
41
- match.captures[0] if !match.nil? && match.captures.length.positive?
42
- else
43
- raise "unable to find version in #{filename}"
44
- end
45
- end
46
-
47
- def self.set_version_in_file(filename, version)
48
- text = IO.read(filename)
49
- new_text = text
50
- new_text = text.gsub(/VERSION:\s?['|"]([.\d]+)['|"]/, "VERSION: \"#{version}\"") if filename.include?(".yml")
51
- new_text = text.gsub(/version\s?=\s?['|"]([.\d]+)['|"]/, "version='#{version}'") if filename.include?(".gemspec")
52
- new_text = text.gsub(/<Version>([-\w\d.]+)</, "<Version>#{version}<") if filename.include?(".csproj")
53
- new_text = text.gsub(/<version>([-\w\d.]+)</, "<version>#{version}<") if filename.include?(".nuspec")
54
- new_text = text.gsub(/ Version="([\d\.]+)"/, " Version=\"#{version}\"") if filename.include?(".wxs")
55
- new_text = text.gsub(/version\s+=\s+['"]([\w.]+)['"]/, "version=\"#{version}\"") if filename.include?(".toml")
56
- File.open(filename, "w") { |f| f.write(new_text) } if new_text != text
57
- end
58
-
59
- def self.set_version_in_files(glob_pattern, version)
60
- Dir.glob(glob_pattern).each do |filename|
61
- set_version_in_file(filename, version)
62
- end
63
- end
64
- end
65
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ VERSION = "0.0.85"
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
+ # example content from .gitlab-ci.yml
13
+ #variables:
14
+ # VERSION: "0.0.26" # Define the version here
15
+
16
+ def self.get_version_from_file(path)
17
+ if (!File.exist?(path))
18
+ raise "file #{path}does not exist"
19
+ end
20
+
21
+ extension = File.extname(path)
22
+ #switch = extension.downcase
23
+ #case switch
24
+ #if extension == ".csproj"
25
+ case switch
26
+ when ".csproj"
27
+ Makit::Version.detect_from_file(path, /<Version>([-\w\d.]+)</)
28
+ when ".wxs"
29
+ Makit::Version.detect_from_file(path, / Version="([\d\.]+)"/)
30
+ when ".yml"
31
+ Makit::Version.detect_from_file(path, /VERSION:\s*["']?([\d\.]+)["']?/)
32
+ else
33
+ raise "unrecognized file type"
34
+ end
35
+ end
36
+
37
+ def self.detect_from_file(filename, regex)
38
+ if File.exist?(filename)
39
+ match = IO.read(filename).match(regex)
40
+ match.captures[0] if !match.nil? && match.captures.length.positive?
41
+ else
42
+ raise "unable to find version in #{filename}"
43
+ end
44
+ end
45
+
46
+ def self.set_version_in_file(filename, version)
47
+ text = IO.read(filename)
48
+ new_text = text
49
+ new_text = text.gsub(/VERSION:\s?['|"]([.\d]+)['|"]/, "VERSION: \"#{version}\"") if filename.include?(".yml")
50
+ new_text = text.gsub(/version\s?=\s?['|"]([.\d]+)['|"]/, "version='#{version}'") if filename.include?(".gemspec")
51
+ new_text = text.gsub(/<Version>([-\w\d.]+)</, "<Version>#{version}<") if filename.include?(".csproj")
52
+ new_text = text.gsub(/<version>([-\w\d.]+)</, "<version>#{version}<") if filename.include?(".nuspec")
53
+ new_text = text.gsub(/ Version="([\d\.]+)"/, " Version=\"#{version}\"") if filename.include?(".wxs")
54
+ new_text = text.gsub(/version\s+=\s+['"]([\w.]+)['"]/, "version=\"#{version}\"") if filename.include?(".toml")
55
+ File.open(filename, "w") { |f| f.write(new_text) } if new_text != text
56
+ end
57
+
58
+ def self.set_version_in_files(glob_pattern, version)
59
+ Dir.glob(glob_pattern).each do |filename|
60
+ set_version_in_file(filename, version)
61
+ end
62
+ end
63
+ end
64
+ end