Class: Pod::Command::Package

Inherits:
Pod::Command show all
Defined in:
lib/pod/command/package.rb,
lib/cocoapods-packager/pod_utils.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Package

Returns a new instance of Package.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/pod/command/package.rb', line 30

def initialize(argv)
  @embedded = argv.flag?('embedded')
  @force = argv.flag?('force')
  @library = argv.flag?('library')
  @dynamic = argv.flag?('dynamic')
  @mangle = argv.flag?('mangle', true)
  @bundle_identifier = argv.option('bundle-identifier', nil)
  @exclude_deps = argv.flag?('exclude-deps', false)
  @name = argv.shift_argument
  @source = argv.shift_argument
  @spec_sources = argv.option('spec-sources', 'https://github.com/CocoaPods/Specs.git').split(',')

  subspecs = argv.option('subspecs')
  @subspecs = subspecs.split(',') unless subspecs.nil?

  @config = argv.option('configuration', 'Release')
  @rcltfile = argv.option('rclt')
  puts "rclt file is #{@rcltfile}"

  @source_dir = Dir.pwd
  @spec = spec_with_path(@name)
  @spec = spec_with_name(@name) unless @spec
  if @rcltfile
    @allLocalDependencies = Qricker.dependency(@rcltfile, [@spec.name])
    puts "dependencies #{@allLocalDependencies}"
  end
  super
end

Class Method Details

.optionsObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/pod/command/package.rb', line 13

def self.options
  [
    ['--force',     'Overwrite existing files.'],
    ['--no-mangle', 'Do not mangle symbols of depedendant Pods.'],
    ['--embedded',  'Generate embedded frameworks.'],
    ['--library',   'Generate static libraries.'],
    ['--dynamic',   'Generate dynamic framework.'],
    ['--bundle-identifier', 'Bundle identifier for dynamic framework'],
    ['--exclude-deps', 'Exclude symbols from dependencies.'],
    ['--configuration', 'Build the specified configuration (e.g. Debug). Defaults to Release'],
    ['--subspecs', 'Only include the given subspecs'],
    ['--spec-sources=private,https://github.com/CocoaPods/Specs.git', 'The sources to pull dependant ' \
      'pods from (defaults to https://github.com/CocoaPods/Specs.git)'],
    ['--rclt=rclt-file-path', "rclt file, Collected local speces list"]
  ]
end

Instance Method Details

#runObject



67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/pod/command/package.rb', line 67

def run
  if @path.nil? || @spec.nil?
    help! 'Unable to find a podspec with path or name.'
    return
  end

  target_dir, work_dir = create_working_directory
  return if target_dir.nil?
  build_package

  `mv "#{work_dir}" "#{target_dir}"`
  Dir.chdir(@source_dir)
end

#validate!Object



59
60
61
62
63
64
65
# File 'lib/pod/command/package.rb', line 59

def validate!
  super
  help! 'A podspec name or path is required.' unless @spec
  help! 'podspec has binary-only depedencies, mangling not possible.' if @mangle && binary_only?(@spec)
  help! '--bundle-identifier option can only be used for dynamic frameworks' if @bundle_identifier && !@dynamic
  help! '--exclude-deps option can only be used for static libraries' if @exclude_deps && @dynamic
end