class RepoMgr::Config
handles repo-mgr configuration
Attributes
cfg[R]
cfg_dir[R]
Public Class Methods
new()
click to toggle source
# File lib/repo_mgr/config.rb, line 13 def initialize @cfg_dir = "#{ENV['HOME']}/.repo-mgr" FileUtils.mkdir_p @cfg_dir @cfg_file = "#{@cfg_dir}/repo-mgr.yml" unless File.exist? @cfg_file File.write @cfg_file, { repos: {}, packages: {} }.to_yaml end @cfg = YAML.load_file @cfg_file end
Public Instance Methods
add_pkg(repo, path)
click to toggle source
# File lib/repo_mgr/config.rb, line 50 def add_pkg(repo, path) if @cfg[:repos][repo].nil? Tools.error "unable to add packages to #{repo} - repo does not exist" end @cfg[:packages] ||= {} @cfg[:packages][repo] ||= [] pkg = File.basename path if @cfg[:packages][repo].include?(pkg) Tools.error "you already have #{pkg} in your #{repo} repo" end @cfg[:packages][repo] << pkg save end
remove_pkg(repo, path)
click to toggle source
# File lib/repo_mgr/config.rb, line 68 def remove_pkg(repo, path) if @cfg[:repos][repo].nil? Tools.error "unable to remove packages from #{repo} "\ '- repo does not exist' end @cfg[:packages] ||= {} @cfg[:packages][repo] ||= [] pkg = File.basename path @cfg[:packages][repo].delete pkg save end
save()
click to toggle source
# File lib/repo_mgr/config.rb, line 25 def save File.write @cfg_file, @cfg.to_yaml end
upsert_repo(options)
click to toggle source
# File lib/repo_mgr/config.rb, line 29 def upsert_repo(options) name = options[:name] type = options[:type] if @cfg[:repos][name] && @cfg[:repos][name][:type] != type Tools.error "unable to change type for #{name} repository" end @cfg[:repos][name] = { type: type, path: options[:path], keyid: options[:keyid] } if options[:publisher] @cfg[:repos][name][:publisher] = options[:publisher] end save end