makit 0.0.26 → 0.0.27

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 (48) 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 +343 -343
  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 +184 -181
  21. data/lib/makit/dotnet.rb +104 -104
  22. data/lib/makit/environment.rb +123 -123
  23. data/lib/makit/fileinfo.rb +16 -16
  24. data/lib/makit/files.rb +47 -47
  25. data/lib/makit/git.rb +80 -80
  26. data/lib/makit/gitlab_runner.rb +60 -60
  27. data/lib/makit/humanize.rb +112 -112
  28. data/lib/makit/logging.rb +96 -96
  29. data/lib/makit/markdown.rb +75 -75
  30. data/lib/makit/mp/basic_object_mp.rb +16 -16
  31. data/lib/makit/mp/command_request.mp.rb +16 -16
  32. data/lib/makit/mp/project_mp.rb +210 -210
  33. data/lib/makit/mp/string_mp.rb +117 -117
  34. data/lib/makit/nuget.rb +57 -57
  35. data/lib/makit/protoc.rb +87 -61
  36. data/lib/makit/serializer.rb +115 -115
  37. data/lib/makit/show.rb +65 -0
  38. data/lib/makit/storage.rb +131 -131
  39. data/lib/makit/symbols.rb +149 -149
  40. data/lib/makit/tasks.rb +55 -55
  41. data/lib/makit/tree.rb +37 -37
  42. data/lib/makit/v1/makit.v1_pb.rb +3 -4
  43. data/lib/makit/v1/makit.v1_services_pb.rb +25 -25
  44. data/lib/makit/version.rb +12 -12
  45. data/lib/makit/wix.rb +95 -95
  46. data/lib/makit/zip.rb +17 -17
  47. data/lib/makit.rb +254 -254
  48. metadata +4 -3
data/lib/makit/nuget.rb CHANGED
@@ -1,57 +1,57 @@
1
- require "tmpdir"
2
- # This module provides classes for the Makit gem.
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 NuGet
14
- def self.get_cache_dir(package, version)
15
- File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package, version)
16
- end
17
-
18
- def self.cache(package, version)
19
- # if the package is already cached, there is nothing to do
20
- if (!Dir.exist?(get_cache_dir(package, version)))
21
- Dir.mktmpdir do |dir|
22
- # Use the temp directory here
23
- Dir.chdir(dir) do
24
- system("dotnet new classlib -n ClassLib")
25
- Dir.chdir("ClassLib") do
26
-
27
- # display a list of directories in the current directory
28
- puts Dir.entries(Dir.pwd)
29
- # display a list of files in the current directory
30
- puts Dir.entries(Dir.pwd)
31
- puts "dotnet add ClassLib.csproj package #{package} --version #{version}"
32
- system("dotnet add ClassLib.csproj package #{package} --version #{version}")
33
- end
34
- end
35
- # The directory and its contents will be removed automatically after the block
36
- end
37
- end
38
- end
39
-
40
- def self.clear_cache(package, version)
41
- if (Dir.exist?(get_cache_dir(package, version)))
42
- FileUtils.rm_rf(get_cache_dir(package, version))
43
- end
44
- end
45
-
46
- # get the latest version of the package
47
- def self.get_latest_version(package)
48
- dir = File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package)
49
- if (Dir.exist?(dir))
50
- versions = Dir.entries(dir).select { |entry| File.directory?(File.join(dir, entry)) && !(entry == "." || entry == "..") }
51
- highest_version = Makit::Version::get_highest_version(versions)
52
- return highest_version
53
- end
54
- nil
55
- end
56
- end
57
- end
1
+ require "tmpdir"
2
+ # This module provides classes for the Makit gem.
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 NuGet
14
+ def self.get_cache_dir(package, version)
15
+ File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package, version)
16
+ end
17
+
18
+ def self.cache(package, version)
19
+ # if the package is already cached, there is nothing to do
20
+ if (!Dir.exist?(get_cache_dir(package, version)))
21
+ Dir.mktmpdir do |dir|
22
+ # Use the temp directory here
23
+ Dir.chdir(dir) do
24
+ system("dotnet new classlib -n ClassLib")
25
+ Dir.chdir("ClassLib") do
26
+
27
+ # display a list of directories in the current directory
28
+ puts Dir.entries(Dir.pwd)
29
+ # display a list of files in the current directory
30
+ puts Dir.entries(Dir.pwd)
31
+ puts "dotnet add ClassLib.csproj package #{package} --version #{version}"
32
+ system("dotnet add ClassLib.csproj package #{package} --version #{version}")
33
+ end
34
+ end
35
+ # The directory and its contents will be removed automatically after the block
36
+ end
37
+ end
38
+ end
39
+
40
+ def self.clear_cache(package, version)
41
+ if (Dir.exist?(get_cache_dir(package, version)))
42
+ FileUtils.rm_rf(get_cache_dir(package, version))
43
+ end
44
+ end
45
+
46
+ # get the latest version of the package
47
+ def self.get_latest_version(package)
48
+ dir = File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package)
49
+ if (Dir.exist?(dir))
50
+ versions = Dir.entries(dir).select { |entry| File.directory?(File.join(dir, entry)) && !(entry == "." || entry == "..") }
51
+ highest_version = Makit::Version::get_highest_version(versions)
52
+ return highest_version
53
+ end
54
+ nil
55
+ end
56
+ end
57
+ end
data/lib/makit/protoc.rb CHANGED
@@ -1,61 +1,87 @@
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 Protoc
8
- def self.grpc_tools_path
9
- File.join(Makit::Directories::NUGET_PACKAGE_CACHE, "grpc.tools", Makit::Protoc::get_latest_grpc_tools_version)
10
- end
11
-
12
- def self.grpc_csharp_plugin_path
13
- Makit::Protoc::find_plugin_path("grpc_csharp_plugin")
14
- end
15
- def self.setup
16
- if (!Dir.exist?(Makit::Directories::NUGET_PACKAGE_CACHE))
17
- puts " warning: Nuget package cache directory #{Makit::Directories::NUGET_PACKAGE_CACHE} not found".colorize(:red)
18
- puts " warning: Unable to proceed with protoc setup".colorize(:red)
19
- else
20
- Makit::NuGet::cache("Grpc.Tools", "2.66.0")
21
- raise "Nuget package path #{Makit::Directories::NUGET_PACKAGE_CACHE} not found" if !Dir.exist?(Makit::Directories::NUGET_PACKAGE_CACHE)
22
-
23
- # test if protoc is installed by running >protoc --version
24
- which_protoc = Makit::Environment.which("protoc")
25
- if (Makit::Environment.which("protoc").nil?)
26
- puts " protoc not found, installing...".colorize(:red)
27
- "go version".run
28
- "go install google.golang.org/protobuf/cmd/protoc-gen-go@latest".run
29
- "go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest".run
30
- "go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest".run
31
- else
32
- puts " protoc found at #{which_protoc}".colorize(:green)
33
- end
34
- raise "protoc not found" if !Makit::Environment.which("protoc")
35
-
36
- #"git clone https://github.com/googleapis/googleapis.git third_party".run unless File.directory?("third_party/google")
37
- puts " grpc_tools_path " + "#{Makit::Protoc::grpc_tools_path}".colorize(:green)
38
- puts " grpc_csharp_plugin_path " + "#{Makit::Protoc::grpc_csharp_plugin_path}".colorize(:green)
39
- end
40
- end
41
-
42
- # get the latest version of the grpc.tools package
43
- def self.get_latest_grpc_tools_version
44
- Makit::NuGet::get_latest_version("Grpc.Tools")
45
- end
46
-
47
- #GRPC_CSHARP_PLUGIN_PATH = Makit::Protoc::find_plugin_path("grpc_csharp_plugin")
48
- def self.find_plugin_path(plugin_name)
49
- # search for a file matching the pattern *grpc_csharp_plugin* in the grpc.tools directory
50
- # should match on Windows and Linux
51
- if (Makit::Environment.is_windows?)
52
- plugin_name = plugin_name + ".exe"
53
- end
54
-
55
- plugin_path = Dir.glob("#{Makit::Directories::GRPC_TOOLS_PATH}/**/#{plugin_name}").first
56
-
57
- raise "Plugin path #{plugin_path} not found" if !File.exist?(plugin_path)
58
- plugin_path
59
- end
60
- end
61
- 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 Protoc
8
+ def self.grpc_tools_path
9
+ File.join(Makit::Directories::NUGET_PACKAGE_CACHE, "grpc.tools", Makit::Protoc::get_latest_grpc_tools_version)
10
+ end
11
+
12
+ def self.grpc_csharp_plugin_path
13
+ Makit::Protoc::find_plugin_path("grpc_csharp_plugin")
14
+ end
15
+ def self.setup
16
+ if (!Dir.exist?(Makit::Directories::NUGET_PACKAGE_CACHE))
17
+ puts " warning: Nuget package cache directory #{Makit::Directories::NUGET_PACKAGE_CACHE} not found".colorize(:red)
18
+ puts " warning: Unable to proceed with protoc setup".colorize(:red)
19
+ else
20
+ Makit::NuGet::cache("Grpc.Tools", "2.66.0")
21
+ raise "Nuget package path #{Makit::Directories::NUGET_PACKAGE_CACHE} not found" if !Dir.exist?(Makit::Directories::NUGET_PACKAGE_CACHE)
22
+
23
+ # test if protoc is installed by running >protoc --version
24
+ which_protoc = Makit::Environment.which("protoc")
25
+ if (Makit::Environment.which("protoc").nil?)
26
+ puts " protoc not found, installing...".colorize(:red)
27
+ "go version".run
28
+ "go install google.golang.org/protobuf/cmd/protoc-gen-go@latest".run
29
+ "go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest".run
30
+ "go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest".run
31
+ else
32
+ puts " protoc found at #{which_protoc}".colorize(:green)
33
+ end
34
+ raise "protoc not found" if !Makit::Environment.which("protoc")
35
+
36
+ #"git clone https://github.com/googleapis/googleapis.git third_party".run unless File.directory?("third_party/google")
37
+ puts " grpc_tools_path " + "#{Makit::Protoc::grpc_tools_path}".colorize(:green)
38
+ puts " grpc_csharp_plugin_path " + "#{Makit::Protoc::grpc_csharp_plugin_path}".colorize(:green)
39
+ end
40
+ end
41
+
42
+ # get the latest version of the grpc.tools package
43
+ def self.get_latest_grpc_tools_version
44
+ Makit::NuGet::get_latest_version("Grpc.Tools")
45
+ end
46
+
47
+ #GRPC_CSHARP_PLUGIN_PATH = Makit::Protoc::find_plugin_path("grpc_csharp_plugin")
48
+ def self.find_plugin_path(plugin_name)
49
+ # search for a file matching the pattern *grpc_csharp_plugin* in the grpc.tools directory
50
+ # should match on Windows and Linux
51
+ if (Makit::Environment.is_windows?)
52
+ plugin_name = plugin_name + ".exe"
53
+ end
54
+
55
+ plugin_path = Dir.glob("#{Makit::Directories::GRPC_TOOLS_PATH}/**/#{plugin_name}").first
56
+
57
+ raise "Plugin path #{plugin_path} not found" if !File.exist?(plugin_path)
58
+ plugin_path
59
+ end
60
+
61
+ def self.get_proto_files_from_path(proto_source_dir)
62
+ proto_files = Array.new()
63
+ Dir.chdir(proto_source_dir) do
64
+ Dir.glob("**/*.proto").each do |proto|
65
+ proto_files << proto
66
+ end
67
+ end
68
+ proto_files
69
+ end
70
+
71
+ def self.generate_source_file(proto_filename, language, csharp_output_dir)
72
+ FileUtils.mkdir_p(csharp_output_dir) unless Dir.exist?(csharp_output_dir)
73
+ "protoc --#{language}_out=#{csharp_output_dir} #{proto_filename}".run
74
+ end
75
+
76
+ # language: charp, ruby, go, etc.
77
+ def self.generate_source_files(proto_source_dir, language, csharp_output_dir)
78
+ proto_files = get_proto_files_from_path(proto_source_dir)
79
+ proto_files.each { |proto|
80
+ namespace_dir = File.dirname(proto)
81
+ puts "Generating #{proto} in #{namespace_dir}"
82
+ FileUtils.mkdir_p("#{csharp_output_dir}/#{namespace_dir}") unless Dir.exist?("#{csharp_output_dir}/#{namespace_dir}")
83
+ "protoc --#{language}_out=#{csharp_output_dir}/#{namespace_dir} protos/#{proto}".run
84
+ }
85
+ end
86
+ end
87
+ end
@@ -1,115 +1,115 @@
1
- # frozen_string_literal: true
2
- require "google/protobuf"
3
- # This module provides classes for the Makit gem.
4
- module Makit
5
- module Proto3Formats
6
- JSON = 0,
7
- PRETTY_JSON = 1,
8
- YAML = 2,
9
- BINARY = 3
10
- end
11
-
12
- # This class provide methods for serializing and deserializing objects.
13
- #
14
- class Serializer
15
- attr_accessor :format_map
16
-
17
- def self.save_as(filename, object)
18
- extension = File.extname(filename)
19
- case extension
20
- when ".json"
21
- File.write(filename, Makit::Serializer.new(Makit::Proto3Formats::PRETTY_JSON).serialize(object))
22
- when ".yml"
23
- File.write(filename, Makit::Serializer.new(Makit::Proto3Formats::YAML).serialize(object))
24
- when ".pb"
25
- File.open(filename, "wb") do |file|
26
- file.write(Makit::Serializer.new(Makit::Proto3Formats::BINARY).serialize(object))
27
- end
28
-
29
- #File.write(filename, Makit::Serializer.new(Makit::Proto3Formats::BINARY).serialize(object))
30
- else
31
- raise "unsupported file extension: #{extension}"
32
- end
33
- end
34
-
35
- def self.open(filename, type)
36
- extension = File.extname(filename)
37
- case extension
38
- when ".json"
39
- Makit::Serializer.new(Makit::Proto3Formats::PRETTY_JSON).deserialize(type, File.read(filename))
40
- when ".yml"
41
- Makit::Serializer.new(Makit::Proto3Formats::YAML).deserialize(type, File.read(filename))
42
- when ".pb"
43
- data = File.open(filename, "rb") { |file| file.read }
44
- Makit::Serializer.new(Makit::Proto3Formats::BINARY).deserialize(type, data)
45
- else
46
- raise "unsupported file extension: #{extension}"
47
- end
48
- end
49
-
50
- def initialize(proto3_format = Proto3Formats::PRETTY_JSON)
51
- @format_maps = {
52
- ::Google::Protobuf::MessageExts => proto3_format,
53
- }
54
- end
55
-
56
- # Serialize an object to a byte[] or a string
57
- def serialize(object)
58
- raise "Object is nil" if object.nil?
59
- raise "object is not of type ::Google::Protobuf::MessageExts" if !object.is_a? ::Google::Protobuf::MessageExts
60
-
61
- case @format_maps[::Google::Protobuf::MessageExts]
62
- when Proto3Formats::JSON
63
- #puts "Serializing to protobuf json format"
64
- object.to_json
65
- when Proto3Formats::PRETTY_JSON
66
- #puts "Serializing to protobuf pretty json format"
67
- json = object.to_json
68
- pretty_json = JSON.pretty_generate(JSON.parse(json))
69
- pretty_json
70
- when Proto3Formats::YAML
71
- #puts "Serializing to protobuf yaml format"
72
- data = JSON.parse(object.to_json)
73
- data.to_yaml.sub(/^---\n/, "")
74
- when Proto3Formats::BINARY
75
- #puts "Serializing to protobuf binary format"
76
- serialized_object = object.to_proto
77
- else
78
- raise "Unknown serialization format"
79
- end
80
- end
81
-
82
- # Deserialize a byte[] or a string to an object
83
- def deserialize(type, data)
84
- raise "data is nil" if data.nil?
85
- case @format_maps[::Google::Protobuf::MessageExts]
86
- when Proto3Formats::JSON
87
- raise "data is not of type string" if !data.is_a? String
88
- json = data
89
- #puts "Deserializing from protobuf json format into type #{type}"
90
- # use the from_json method to deserialize the object
91
- type.decode_json(json)
92
- when Proto3Formats::PRETTY_JSON
93
- raise "data is not of type string" if !data.is_a? String
94
- json = data
95
- #puts "Deserializing from protobuf pretty json format into type #{type}"
96
- # use the from_json method to deserialize the object
97
- type.decode_json(json)
98
- when Proto3Formats::YAML
99
- raise "data is not of type string" if !data.is_a? String
100
- yaml = data
101
- # convert yaml to json
102
- json = JSON.pretty_generate(YAML.safe_load(yaml))
103
- #puts "Deserializing from protobuf yaml format into type #{type}"
104
- type.decode_json(json)
105
- when Proto3Formats::BINARY
106
- #raise "data is not of type byte[]" if !data.is_a? Array
107
- bytes = data
108
- #puts "Deserializing from protobuf binary format into type #{type}"
109
- type.decode(bytes)
110
- else
111
- raise "Unknown serialization format"
112
- end
113
- end
114
- end # class Storage
115
- end # module Makit
1
+ # frozen_string_literal: true
2
+ require "google/protobuf"
3
+ # This module provides classes for the Makit gem.
4
+ module Makit
5
+ module Proto3Formats
6
+ JSON = 0,
7
+ PRETTY_JSON = 1,
8
+ YAML = 2,
9
+ BINARY = 3
10
+ end
11
+
12
+ # This class provide methods for serializing and deserializing objects.
13
+ #
14
+ class Serializer
15
+ attr_accessor :format_map
16
+
17
+ def self.save_as(filename, object)
18
+ extension = File.extname(filename)
19
+ case extension
20
+ when ".json"
21
+ File.write(filename, Makit::Serializer.new(Makit::Proto3Formats::PRETTY_JSON).serialize(object))
22
+ when ".yml"
23
+ File.write(filename, Makit::Serializer.new(Makit::Proto3Formats::YAML).serialize(object))
24
+ when ".pb"
25
+ File.open(filename, "wb") do |file|
26
+ file.write(Makit::Serializer.new(Makit::Proto3Formats::BINARY).serialize(object))
27
+ end
28
+
29
+ #File.write(filename, Makit::Serializer.new(Makit::Proto3Formats::BINARY).serialize(object))
30
+ else
31
+ raise "unsupported file extension: #{extension}"
32
+ end
33
+ end
34
+
35
+ def self.open(filename, type)
36
+ extension = File.extname(filename)
37
+ case extension
38
+ when ".json"
39
+ Makit::Serializer.new(Makit::Proto3Formats::PRETTY_JSON).deserialize(type, File.read(filename))
40
+ when ".yml"
41
+ Makit::Serializer.new(Makit::Proto3Formats::YAML).deserialize(type, File.read(filename))
42
+ when ".pb"
43
+ data = File.open(filename, "rb") { |file| file.read }
44
+ Makit::Serializer.new(Makit::Proto3Formats::BINARY).deserialize(type, data)
45
+ else
46
+ raise "unsupported file extension: #{extension}"
47
+ end
48
+ end
49
+
50
+ def initialize(proto3_format = Proto3Formats::PRETTY_JSON)
51
+ @format_maps = {
52
+ ::Google::Protobuf::MessageExts => proto3_format,
53
+ }
54
+ end
55
+
56
+ # Serialize an object to a byte[] or a string
57
+ def serialize(object)
58
+ raise "Object is nil" if object.nil?
59
+ raise "object is not of type ::Google::Protobuf::MessageExts" if !object.is_a? ::Google::Protobuf::MessageExts
60
+
61
+ case @format_maps[::Google::Protobuf::MessageExts]
62
+ when Proto3Formats::JSON
63
+ #puts "Serializing to protobuf json format"
64
+ object.to_json
65
+ when Proto3Formats::PRETTY_JSON
66
+ #puts "Serializing to protobuf pretty json format"
67
+ json = object.to_json
68
+ pretty_json = JSON.pretty_generate(JSON.parse(json))
69
+ pretty_json
70
+ when Proto3Formats::YAML
71
+ #puts "Serializing to protobuf yaml format"
72
+ data = JSON.parse(object.to_json)
73
+ data.to_yaml.sub(/^---\n/, "")
74
+ when Proto3Formats::BINARY
75
+ #puts "Serializing to protobuf binary format"
76
+ serialized_object = object.to_proto
77
+ else
78
+ raise "Unknown serialization format"
79
+ end
80
+ end
81
+
82
+ # Deserialize a byte[] or a string to an object
83
+ def deserialize(type, data)
84
+ raise "data is nil" if data.nil?
85
+ case @format_maps[::Google::Protobuf::MessageExts]
86
+ when Proto3Formats::JSON
87
+ raise "data is not of type string" if !data.is_a? String
88
+ json = data
89
+ #puts "Deserializing from protobuf json format into type #{type}"
90
+ # use the from_json method to deserialize the object
91
+ type.decode_json(json)
92
+ when Proto3Formats::PRETTY_JSON
93
+ raise "data is not of type string" if !data.is_a? String
94
+ json = data
95
+ #puts "Deserializing from protobuf pretty json format into type #{type}"
96
+ # use the from_json method to deserialize the object
97
+ type.decode_json(json)
98
+ when Proto3Formats::YAML
99
+ raise "data is not of type string" if !data.is_a? String
100
+ yaml = data
101
+ # convert yaml to json
102
+ json = JSON.pretty_generate(YAML.safe_load(yaml))
103
+ #puts "Deserializing from protobuf yaml format into type #{type}"
104
+ type.decode_json(json)
105
+ when Proto3Formats::BINARY
106
+ #raise "data is not of type byte[]" if !data.is_a? Array
107
+ bytes = data
108
+ #puts "Deserializing from protobuf binary format into type #{type}"
109
+ type.decode(bytes)
110
+ else
111
+ raise "Unknown serialization format"
112
+ end
113
+ end
114
+ end # class Storage
115
+ end # module Makit
data/lib/makit/show.rb ADDED
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "find"
4
+ require "pathname"
5
+
6
+ # This module provides classes for the Makit gem.
7
+ module Makit
8
+ class Show
9
+ def modified(path)
10
+ if File.file?(path)
11
+ puts "#{path} modified ".colorize(:grey) + "#{Makit::Humanize.get_humanized_timestamp(File.mtime(path))}".colorize(:cyan)
12
+ elsif File.directory?(path)
13
+ puts "#{path} modified ".colorize(:grey) + "#{Makit::Humanize.get_humanized_timestamp(Makit::Directory.modified(path))}".colorize(:cyan)
14
+ else
15
+ put "#{path} does not exist"
16
+ end
17
+ end
18
+
19
+ def age(path)
20
+ if File.file?(path)
21
+ modified = File.mtime(path)
22
+ age = (Time.now - modified).to_f
23
+ puts "#{path} age is ".colorize(:grey) + "#{Makit::Humanize.get_humanized_duration(age)}".colorize(:cyan)
24
+ elsif File.directory?(path)
25
+ modified = Makit::Directory.modified(path)
26
+ age = (Time.now -modified).to_f
27
+ puts "#{path} age is ".colorize(:grey) + "#{Makit::Humanize.get_humanized_duration(age)}".colorize(:cyan)
28
+ else
29
+ put "#{path} does not exist"
30
+ end
31
+ end
32
+
33
+ def file(path)
34
+ modified = File.mtime(path)
35
+ age = (Time.now - modified).to_f
36
+ puts "#{file_symbol} #{path} ".colorize(:grey) + "#{Makit::Humanize.get_humanized_size(File.size(path))} ".colorize(:cyan) + "#{Makit::Humanize.get_humanized_duration(age)}".colorize(:cyan)
37
+ end
38
+
39
+ def file_symbol
40
+ #📄 (U+1F4C4) – "Page with Curl"
41
+ "\u{1F4C4}"
42
+ end
43
+
44
+ def directory_symbol
45
+ # 📁 (U+1F4C1) – "File Folder"
46
+ "\u{1F4C1}"
47
+ end
48
+
49
+ def size(path)
50
+ if File.file?(path)
51
+ puts "#{path} size is ".colorize(:grey) + "#{Makit::Humanize.get_humanized_size(File.size(path))}".colorize(:cyan)
52
+ elsif File.directory?(path)
53
+ puts "#{path} size is ".colorize(:grey) + "#{Makit::Humanize.get_humanized_size(Makit::Directory.get_size(path))}".colorize(:cyan)
54
+ else
55
+ put "#{path} does not exist"
56
+ end
57
+ end
58
+
59
+ def task(task)
60
+ puts ":#{task}".colorize(:green)
61
+ end
62
+ end
63
+ end
64
+
65
+ #Code42-#{VERSION}-win10-x64 ".colorize(:grey) + "#{Makit::Humanize.get_humanized_size(Makit::Directory.get_size("artifacts/Code42-0.0.0-win10-x64"))}".colorize(:cyan)