Sha256: 19083fd03678a9b9771aabf551c1972c0aad21ac88f479a0080fd8fd9db56d58
Contents?: true
Size: 1.3 KB
Versions: 2
Compression:
Stored size: 1.3 KB
Contents
# frozen_string_literal: true require 'etc' require 'facets/file/atomic_write' require 'facets/string/word_wrap' require 'open3' require 'uri' require 'yaml' require 'xezat' module Xezat def variables(cygport) cygport_dir = File.dirname(File.absolute_path(cygport)) cache_file = File.expand_path(File.join(cygport_dir, "#{File.basename(cygport, '.cygport')}.#{Etc.uname[:machine]}.yml")) Xezat.logger.debug(' Extract variables') if File.exist?(cache_file) && File.ctime(cache_file) > File.ctime(cygport) Xezat.logger.debug(' Read cache for variables') return YAML.safe_load(File.open(cache_file), [Symbol]).each do |k, v| v.strip! if v.respond_to?(:strip) && k != :DESCRIPTION end end command = ['bash', File.expand_path(File.join(DATA_DIR, 'show_cygport_variable.sh')), cygport] result, error, status = Open3.capture3(command.join(' ')) raise CygportProcessError, error unless status.success? result.gsub!(/^.*\*\*\*.*$/, '') variables = YAML.safe_load(result, [Symbol]).each_value do |v| v.strip! if v.respond_to?(:strip) end variables[:DESCRIPTION].word_wrap!(79) File.atomic_write(cache_file) do |f| Xezat.logger.debug(' Write cache for variables') f.write(YAML.dump(variables)) end variables end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
xezat-0.2.2 | lib/xezat/variables.rb |
xezat-0.2.1 | lib/xezat/variables.rb |