Class: PkgConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/pkg/pkg_config.rb

Constant Summary collapse

CONFIG_SUB_DIR =
'pkg'.freeze
ROOT_PATH =
File.join(Config::CONFIG_DIR, CONFIG_SUB_DIR).freeze
DEFAULT_CONFIG =
{
  ConfigOptions::PACKAGES => [],
  ConfigOptions::REMOTES => [],
  ConfigOptions::REPOS => []
}.freeze

Class Method Summary collapse

Class Method Details

.add(pkgm, config_option, item, success) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/pkg/pkg_config.rb', line 21

def self.add(pkgm, config_option, item, success)
  unless success
    Log::LOGGER.error("#{config_option[1..]} '#{item}' could not be added")
    abort
  end

  config_file = PkgConfig.get_config_file(pkgm)
  Log::LOGGER.info("Add '#{item}' to list '#{config_option}' in '#{config_file}")

  config = Config.get_config_json(config_file, DEFAULT_CONFIG)

  puts(config)

  list = config[config_option]
  list.append item unless list.include? item
  config[config_option] = list.sort

  Config.write_config_file(config_file, config)
end

.default_configObject



64
65
66
# File 'lib/pkg/pkg_config.rb', line 64

def self.default_config
  DEFAULT_CONFIG
end

.get_config_file(pkgm) ⇒ Object



59
60
61
62
# File 'lib/pkg/pkg_config.rb', line 59

def self.get_config_file(pkgm)
  pkgm = pkgm.to_s.downcase
  File.join(ROOT_PATH, "#{pkgm}.json")
end

.remove(pkgm, config_option, item, success) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/pkg/pkg_config.rb', line 41

def self.remove(pkgm, config_option, item, success)
  unless success
    Log::LOGGER.error("#{config_option[1..]} '#{item}' could not be removed")
    abort
  end

  config_file = PkgConfig.get_config_file(pkgm)
  Log::LOGGER.info("Remove '#{item}' from list '#{config_option}' in '#{config_file}")

  config = Config.get_config_json(config_file, DEFAULT_CONFIG)

  list = config[config_option]
  list.delete item if list.include? item
  config[config_option] = list.sort

  Config.write_config_file(config_file, config)
end