require 'cocoapods-flutter/native/archive/archive' module Pod class Command class Flutter < Command class Archive < Flutter self.summary = 'archive flutter' self.description = <<-DESC 发布二进制组件 / 源码组件 DESC self.arguments = [ CLAide::Argument.new([''], false) ] def self.options [ ['--repo', 'podspec repo'], ['--sources', 'podspec sources'], ['--upgrade', 'pub upgrade'], ['--wrapper', 'Default is flutter'], ['--flutterversion', 'FlutterSDK version'], ['--buildrun', 'run build-runner'] ].concat(Pod::Command::Repo::Push.options).concat(super).uniq end def initialize(argv) @module_name = argv.shift_argument tmp_version = argv.shift_argument #如果满足 if tmp_version =~ /([0-9]+\.)+[0-9]+/ @version = tmp_version else tmp_str = tmp_version.dup last_v = "0" mid_v = "0" main_v = "0" unless tmp_str.empty? last_v = tmp_str.slice!(tmp_str.length - 1, 1) end unless tmp_str.empty? mid_v = tmp_str.slice!(tmp_str.length - 1, 1) end unless tmp_str.empty? main_v = tmp_str end versions = Array.new versions << main_v versions << mid_v versions << last_v @version = versions.join "." end @pod_repo = argv.option('repo', 'master') @sources = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',') @flutter_wrapper = argv.option('wrapper', 'flutter') @pub_upgrade = argv.flag?('upgrade', true) @flutter_version = argv.option('flutterversion', '1.12.13') @build_run = argv.flag?('buildrun', true) @working_dir = Dir.pwd super end def run archiver = Archiver.new(@module_name, @version, @sources, @flutter_wrapper, @pub_upgrade, @flutter_version, @build_run, @working_dir,@pod_repo) archiver.archive end end end end end