module Kmc::Configuration

Public Class Methods

cache_dir() click to toggle source
# File lib/kmc/configuration.rb, line 23
def cache_dir
  read_config[:cache_dir]
end
load_ksp_path() click to toggle source
# File lib/kmc/configuration.rb, line 19
def load_ksp_path
  read_config[:ksp_path]
end
packages_path() click to toggle source
# File lib/kmc/configuration.rb, line 27
def packages_path
  File.join(kmc_path, 'packages', 'packages')
end
save_ksp_path(path) click to toggle source
# File lib/kmc/configuration.rb, line 15
def save_ksp_path(path)
  write_config(ksp_path: path)
end

Private Class Methods

config_path() click to toggle source
# File lib/kmc/configuration.rb, line 58
def config_path
  File.join(kmc_path, 'config.json')
end
ensure_config_exists!() click to toggle source
# File lib/kmc/configuration.rb, line 53
def ensure_config_exists!
  FileUtils.mkdir_p(kmc_path)
  FileUtils.touch(config_path)
end
kmc_path() click to toggle source
# File lib/kmc/configuration.rb, line 62
def kmc_path
  File.join(Dir.home, ".kmc")
end
read_config() click to toggle source
# File lib/kmc/configuration.rb, line 42
def read_config
  ensure_config_exists!

  config = File.read(config_path)
  if config.empty?
    {}
  else
    JSON.parse(config, symbolize_names: true)
  end
end
write_config(opts) click to toggle source
# File lib/kmc/configuration.rb, line 33
def write_config(opts)
  ensure_config_exists!

  config_to_write = JSON.pretty_generate(read_config.merge(opts))
  File.open(config_path, "w") do |file|
    file.write config_to_write
  end
end