class MGit::Manifest::LightRepoGenerator
@!scope lightrepo生成器
Public Class Methods
light_repo_with(name, config_json, parent_json)
click to toggle source
# File lib/m-git/manifest/light_repo_generator.rb, line 22 def self.light_repo_with(name, config_json, parent_json) light_repo = LightRepo.new(name) light_repo.path = __parse_path(name, config_json, parent_json) lock_info = config_json[Constants::REPO_CONFIG_KEY[:lock]] light_repo.lock = lock_info && !lock_info.empty? if light_repo.lock light_repo.commit_id = lock_info[Constants::REPO_CONFIG_LOCK_KEY[:commit_id]] light_repo.tag = lock_info[Constants::REPO_CONFIG_LOCK_KEY[:tag]] light_repo.branch = lock_info[Constants::REPO_CONFIG_LOCK_KEY[:branch]] end light_repo.url = __parse_url(config_json, parent_json) dummy = config_json[Constants::REPO_CONFIG_KEY[:dummy]] dummy = !dummy.nil? && dummy == true if dummy excluded = true else excluded = config_json[Constants::REPO_CONFIG_KEY[:mgit_excluded]] excluded = parent_json[Constants::CONFIG_KEY[:mgit_excluded]] if excluded.nil? excluded = !excluded.nil? && excluded == true end light_repo.mgit_excluded = excluded light_repo.dummy = dummy is_config_repo = config_json[Constants::REPO_CONFIG_KEY[:config_repo]] light_repo.is_config_repo = is_config_repo.nil? ? false : is_config_repo light_repo end
simple_init(name, path, url)
click to toggle source
简单初始化,有写字段缺失,仅包含名字,相对路径,url
@param name [String] 仓库名
@param path [String] 仓库相对路径
@param url [String] 仓库url
@return [LightRepo] 配置对象
# File lib/m-git/manifest/light_repo_generator.rb, line 18 def self.simple_init(name, path, url) LightRepo.new(name, path, nil, nil, nil, url, false, false, false, false) end
Private Class Methods
__parse_path(repo_name, config_json, parent_json)
click to toggle source
# File lib/m-git/manifest/light_repo_generator.rb, line 56 def __parse_path(repo_name, config_json, parent_json) abs_path = config_json[Constants::REPO_CONFIG_KEY[:abs_dest]] return abs_path if !abs_path.nil? && !abs_path.empty? local_path = parent_json[Constants::REPO_CONFIG_KEY[:dest]] # 替换key值中的‘/’字符,避免和路径混淆 repo_name = repo_name.gsub(/\//,':') if local_path.nil? Utils.safe_join(parent_json[Constants::CONFIG_KEY[:dest]], repo_name) elsif !local_path.empty? Utils.safe_join(local_path, repo_name) else repo_name end end
__parse_url(config_json, parent_json)
click to toggle source
# File lib/m-git/manifest/light_repo_generator.rb, line 72 def __parse_url(config_json, parent_json) source_remote = config_json[Constants::REPO_CONFIG_KEY[:remote]] remote_path = config_json[Constants::REPO_CONFIG_KEY[:remote_path]] return if remote_path.nil? if source_remote.nil? global_remote = parent_json[Constants::CONFIG_KEY[:remote]] Utils.safe_join(global_remote, remote_path) else Utils.safe_join(source_remote, remote_path) end end