Class: Pod::Command::Binary::Lint

Inherits:
Pod::Command::Binary show all
Defined in:
lib/cocoapods-tdfire-binary/command/lint.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Pod::Command::Binary

#binary_config, #first_podspec, #private_sources

Constructor Details

#initialize(argv) ⇒ Lint

Returns a new instance of Lint.



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/cocoapods-tdfire-binary/command/lint.rb', line 22

def initialize(argv)
  @clean = argv.flag?('clean')
  @sources = argv.option('sources')
  @subspec = argv.option('subspec')
  @one_binary = argv.flag?('one-binary')

  @spec_file = first_podspec
  @spec_name = @spec_file.split('/').last.split('.').first unless @spec_file.nil?
  unzip_framework
  super
end

Class Method Details

.optionsObject



13
14
15
16
17
18
19
20
# File 'lib/cocoapods-tdfire-binary/command/lint.rb', line 13

def self.options
  [
      ['--sources', '私有源地址'],
      ['--clean', '执行成功后,删除 zip 文件外的所有生成文件'],
      ['--one-binary', '只让 Lint 的 Pod 进行二进制依赖,其余都用源码'],
      ['--subspec', 'lint 特定 subspec']
  ].concat(super)
end

Instance Method Details

#runObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/cocoapods-tdfire-binary/command/lint.rb', line 49

def run
  if @one_binary
    Pod::Tdfire::BinaryStateStore.lib_lint_binary_pod = @spec_name
  else
    Pod::Tdfire::BinaryStateStore.set_force_use_binary
  end

  argvs = [
      "--sources=#{@sources || Pod::Tdfire::BinaryUrlManager.private_cocoapods_url}",
      '--allow-warnings',
      '--use-libraries',
      '--verbose'
  ]

  argvs << "--subspec=#{@subspec}" unless @subspec.nil?

  lint= Pod::Command::Lib::Lint.new(CLAide::ARGV.new(argvs))
  lint.validate!
  lint.run

  if @one_binary
    Pod::Tdfire::BinaryStateStore.lib_lint_binary_pod = nil
  else
    Pod::Tdfire::BinaryStateStore.unset_force_use_binary
  end

  system "rm -fr #{@spec_name}.framework " if @clean
end

#unzip_frameworkObject



41
42
43
44
45
46
47
# File 'lib/cocoapods-tdfire-binary/command/lint.rb', line 41

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

#validate!Object



34
35
36
37
38
39
# File 'lib/cocoapods-tdfire-binary/command/lint.rb', line 34

def validate!
  super
  help! '当前目录下没有podspec文件.' if @spec_file.nil?
  framework = "#{@spec_name}.framework"
  help! "当前目录下没有#{framework}文件" unless File.exist?(framework)
end