lib/cocoapods-mtxx-bin/command/bin/init.rb in cocoapods-mtxx-bin-0.0.13 vs lib/cocoapods-mtxx-bin/command/bin/init.rb in cocoapods-mtxx-bin-1.0.0

- old
+ new

@@ -2,60 +2,57 @@ module Pod class Command class Bin < Command class Init < Bin - self.summary = '初始化插件' + self.summary = '配置插件' self.description = <<-DESC - 创建yml配置文件,保存插件需要的配置信息,如源码podspec仓库、二进制下载地址等 + 创建yml配置文件,保存插件需要的配置信息,如二进制podspec仓库、二进制下载地址等 DESC def self.options [ - %w[--bin-url=URL 配置文件地址,直接从此地址下载配置文件], - ['--update-sources', '更新源码私有源配置 bin_dev.yml 中的 code_repo_url_list 配置,支持多私有源,多个私有源用分号区分 example:git@techgit.meitu.com:iMeituPic/mtsourcespecs.git;git@techgit.meitu.com:iosmodules/specs.git;https://github.com/CocoaPods/Specs.git'] + %w[--bin-url=URL 配置文件地址,直接从此地址下载配置文件] ].concat(super) end def initialize(argv) @bin_url = argv.option('bin-url') - @update_sources = argv.flag?('update-sources') super end def run - if @update_sources - update_code_repo_url_list + raise Informative, "当前目录下没有`Podfile`文件" unless File.exist?(File.join(Dir.pwd, "Podfile")) + raise Informative, "当前目录下已经存在配置文件" if File.exist?(CBin.config.config_file) + if @bin_url.nil? + config_with_asker else - if @bin_url.nil? - config_with_asker - else - config_with_url(@bin_url) - end + config_with_url(@bin_url) end - end private + # 从远端下载配置文件 def config_with_url(url) require 'open-uri' - UI.puts "开始下载配置文件...\n" + UI.puts "开始下载配置文件..." file = open(url) contents = YAML.safe_load(file.read) - UI.puts "开始同步配置文件...\n" + UI.puts "开始同步配置文件..." CBin.config.sync_config(contents.to_hash) - UI.puts "设置完成.\n".green + UI.puts "设置完成.".green rescue Errno::ENOENT => e raise Informative, "配置文件路径 #{url} 无效,请确认后重试." end + # 询问用户相关的配置 def config_with_asker asker = CBin::Config::Asker.new - asker.wellcome_message + asker.welcome_message config = {} template_hash = CBin.config.template_hash template_hash.each do |k, v| default = begin @@ -66,28 +63,9 @@ config[k] = asker.ask_with_answer(v[:description], default, v[:selection]) end CBin.config.sync_config(config) asker.done_message - end - def update_code_repo_url_list - asker = CBin::Config::Asker.new - config = {} - template_hash = CBin.config.template_hash - template_hash.each do |k, v| - if k == "code_repo_url_list" - default = begin - CBin.config.send(k) - rescue StandardError - nil - end - config[k] = asker.ask_with_answer(v[:description], default, v[:selection]) - else - config[k] = CBin.config.config_old[k] - end - end - CBin.config.sync_config_code_repo_url_list(config) - asker.done_message_update end end end end end