Class: Pod::Command::Binary::Push

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

Constant Summary collapse

ZIP_SUBFFIX =
'.framework.zip'

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Pod::Command::Binary

#binary_config, #first_podspec, #private_sources

Constructor Details

#initialize(argv) ⇒ Push

Returns a new instance of Push.



28
29
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
# File 'lib/cocoapods-tdfire-binary/command/push.rb', line 28

def initialize(argv)
	path = argv.shift_argument
	name = argv.option('name')
	version = argv.option('version')
	commit = argv.option('commit')
	
	unless first_podspec.nil? 
		if path.nil?
  	path = first_podspec.split('.').first 
  end

  spec = Specification.from_file(Pathname.new(first_podspec))
 	version = spec.version if version.nil?
						name = spec.name 
	end

	if path 
  path += ZIP_SUBFFIX unless path.end_with?(ZIP_SUBFFIX)
end


	@path = path
	@name = name || path.split('/').last.sub(ZIP_SUBFFIX, '') if path
	@version = version
	@commit = commit
	super
end

Class Method Details

.optionsObject



20
21
22
23
24
25
26
# File 'lib/cocoapods-tdfire-binary/command/push.rb', line 20

def self.options
  [
    ['--name=组件名', '推送二进制的组件名'],
    ['--version=版本号', '推送二进制的版本号'],
    ['--commit=版本日志', '推送二进制的版本日志'],
  ].concat(super)
end

Instance Method Details

#runObject



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/cocoapods-tdfire-binary/command/push.rb', line 62

def run
					tag_log = `git tag -l -n #{@version}` 	      	
					tag_log = tag_log.split(' ')[1..-1].join('') unless tag_log.empty?
					

					hash_log =  `git show-ref #{@version}`
					hash_log = hash_log.split(' ').first unless hash_log.empty?

					commit = @commit || tag_log || @version

					UI.section("Tdfire: start pushing framework zip file ...") do
						UI.puts "Tdfire: post argvs: name -> #{@name}, version -> #{@version}, path -> #{@path}, commit -> #{commit}, commit hash -> #{hash_log}"
						Pod::Tdfire::BinaryUrlManager.post_push_url(@name, @version, @path, commit, hash_log)
					end
end

#validate!Object



56
57
58
59
60
# File 'lib/cocoapods-tdfire-binary/command/push.rb', line 56

def validate!
  super
  help! "指定目录下没有可推送文件: #{@path}" unless File.exist?(@path)
  help! "必须为推送组件指定版本(--version)" if @version.nil?
end