class CocoapodsHd::UploadHelper

Attributes

code_spec[RW]
file_path[RW]
name[RW]
platforms[RW]
version[RW]

Public Class Methods

new(code_spec = nil, file_path = nil) click to toggle source
# File lib/cocoapods-hd/upload/upload_helper.rb, line 13
def initialize(code_spec = nil, file_path = nil)
  @code_spec = code_spec
  @platforms = ['ios']
  @file_path = file_path
  @version = code_spec.version
  @name = code_spec.root.name

  puts "基础信息: name: #{name} --- version: #{version} --- file_path: #{file_path} --- platforms: #{platforms}  "

end

Public Instance Methods

add_spec_to_repo() click to toggle source
# File lib/cocoapods-hd/upload/upload_helper.rb, line 67
def add_spec_to_repo
  podspec_name = "#{@name}.podspec.json"
  podspec_json = File.join(Dir.pwd, podspec_name)

  FileUtils.chdir(binary_repo_dir)
  spec_path = File.join(@name, @version.to_s)

  FileUtils.mkdir_p(spec_path) unless File.exist?(spec_path)

  # 移动podspec.json到本地repo
  FileUtils.move(podspec_json, spec_path)
end
binary_repo_dir() click to toggle source

获取 HDBinarySpecs 路径

# File lib/cocoapods-hd/upload/upload_helper.rb, line 81
def binary_repo_dir
  unless File.directory?(Constant.binary_repo)
    `pod repo add HDBinarySpecs #{Constant.binary_url}`
    # 删除多余的repo
    FileUtils.rm_rf(Constant.unused_binary_repo)
  end
  Constant.binary_repo
end
push_binary_repo() click to toggle source

上传二进制 podspec

# File lib/cocoapods-hd/upload/upload_helper.rb, line 54
def push_binary_repo
  # 创建目录 ps: AFNetworking/4.0.1
  add_spec_to_repo

  # push spec to origin gitlab
  `git status -s`
  `git add .`
  `git commit -m '添加 binary #{@name} #{@version.to_s}'`
  `git push origin master`
  STDERR.puts "#{name}.podspec.json psuh success ".green

end
spec_creator() click to toggle source
# File lib/cocoapods-hd/upload/upload_helper.rb, line 24
def spec_creator
  spec_creator = SpecSourceCreator.new(code_spec, name, file_path)
  spec_creator.create
  spec_creator.write_spec_file
  spec_creator.filename
end
upload() click to toggle source
# File lib/cocoapods-hd/upload/upload_helper.rb, line 31
def upload
  # 上传zip包
  upload_static_zip
  # push binary repo podspec.json
  push_binary_repo
end
upload_static_zip() click to toggle source
# File lib/cocoapods-hd/upload/upload_helper.rb, line 38
def upload_static_zip
  puts "开始上传zip --------- "

  create_dir_command = "curl -u #{Constant.user_and_password} #{Constant.ftp_url}/#{@name}/#{@version.to_s}/ --ftp-create-dirs"
  upload_zip_command = "curl -u #{Constant.user_and_password} #{Constant.ftp_url}/#{@name}/#{@version.to_s}/ -T #{file_path}/#{@name}.zip"

  `#{create_dir_command}`
  `#{upload_zip_command}`
  # 查看curl返回结果
  # create_dir_result = %x(#{create_dir_command})
  # puts "create_dir_result 执行结果 : #{create_dir_result} --- "

  STDERR.puts "zip upload success ".green
end