Make version output colorful

This commit is contained in:
Eugen Wissner 2023-05-29 22:17:35 +02:00
parent 6a81f0959d
commit 6e313e2272

View File

@ -7,8 +7,11 @@
require 'net/http' require 'net/http'
require 'json' require 'json'
require_relative '../config/config' require_relative '../config/config'
require 'term/ansicolor'
module SlackBuilder module SlackBuilder
extend Term::ANSIColor
# Remote repository for a single package. # Remote repository for a single package.
class Repository class Repository
# Request the latest tag in the given repository. # Request the latest tag in the given repository.
@ -72,16 +75,26 @@ module SlackBuilder
end end
end end
def self.check_for_latest(package_name, repository) module_function
package_path = Pathname.new Dir.glob("#{CONFIG[:repository]}/*/#{package_name}").first
package_category = package_path.dirname.basename.to_s # Checks if there is a new version for the package and returns the latest
package = Package.parse("#{package_category}/#{package_name}", File.read("#{package_path}/#{package_name}.info")) # version if an update is available, otherwise returns nil.
def check_for_latest(package_name, repository)
package = find_package_info package_name
latest_version = repository.latest latest_version = repository.latest
if package.version == latest_version if package.version == latest_version
puts "#{package_name} is up to date." puts green "#{package_name} is up to date (Version #{package.version})."
nil
else else
puts "#{package_name}: Current version is #{package.version}, #{latest_version} is available." puts red "#{package_name}: Current version is #{package.version}, #{latest_version} is available."
latest_version
end end
end end
private_class_method def find_package_info(package_name)
package_path = Pathname.new Dir.glob("#{CONFIG[:repository]}/*/#{package_name}").first
package_category = package_path.dirname.basename.to_s
Package.parse("#{package_category}/#{package_name}", File.read("#{package_path}/#{package_name}.info"))
end
end end