lib/cocoapods-tdfire-binary/command/lint.rb in cocoapods-tdfire-binary-1.0.2 vs lib/cocoapods-tdfire-binary/command/lint.rb in cocoapods-tdfire-binary-1.0.3
- old
+ new
@@ -1,17 +1,63 @@
+require 'cocoapods-tdfire-binary/binary_state_store'
+
module Pod
class Command
class Binary < Command
class Lint < Binary
self.abstract_command = false
self.summary = '对本地二进制进行 Lint'
self.description = <<-DESC
对本地二进制进行 Lint
DESC
- def run
-
- end
+ def self.options
+ [
+ ['--sources', '私有源地址'],
+ ['--clean', '执行成功后,删除 zip 文件外的所有生成文件'],
+ ].concat(super)
+ end
+
+ def initialize(argv)
+ @clean = argv.flag?('clean')
+ @sources = argv.option('sources')
+ @spec_file = first_podspec
+ @spec_name = @spec_file.split('/').last.split('.').first
+ unzip_framework
+ super
+ end
+
+ def validate!
+ super
+ help! '当前目录下没有podspec文件.' if @spec_file.nil?
+ framework = "#{@spec_name}.framework"
+ help! "当前目录下没有#{framework}文件" unless File.exist?(framework)
+ end
+
+ def unzip_framework
+ framework = "#{@spec_name}.framework"
+ zip_name = "#{framework}.zip"
+ if File.exist?(zip_name) && !File.exist?("#{@spec_name}.framework")
+ system "unzip #{zip_name}"
+ end
+ end
+
+ def run
+ Tdfire::BinaryStateStore.lib_lint_binary_pod = @spec_name
+
+ argvs = [
+ "--sources=#{@sources || Tdfire::BinaryUrlManager.private_cocoapods_url}",
+ '--allow-warnings',
+ '--use-libraries',
+ '--verbose'
+ ]
+
+ lint= Pod::Command::Lib::Lint.new(CLAide::ARGV.new(argvs))
+ lint.validate!
+ lint.run
+
+ system "rm -fr #{@spec_name}.framework " if @clean
+ end
end
end
end
end
\ No newline at end of file