class Tuya::SpecRepo

Public Class Methods

push(version, is_commit_all, podspec, verbose) click to toggle source
# File lib/tycli/spec_repo.rb, line 3
def self.push(version, is_commit_all, podspec, verbose)

        require 'tycli/repo/spec'
        require 'tycli/git'
        require 'colored'

        if is_commit_all
                Tuya::TuyaGit.commit_all('feat: update all by tuya-cli repo push')
        end

        podspecs = Tuya::PodSpec.update(podspec, version)
        podspecs.each do |podspec_file|
                Tuya::TuyaGit.commit_file(podspec_file, "feat: update version #{version} by tuya-cli repo push")
        end

        require 'tycli/executable'

        puts "\nPush podspec(git)...".yellow
        git_push_commands = [
                %W(push)
        ]
        Tuya::EXE.multi_exe('git', git_push_commands, true)

        puts "\nAdd tag: #{version}...".yellow
        git_tag_commands = [
                %W(tag -a #{version} -m 'add\ tag:\ #{version}\ by\ tuya-cli\ repo\ push')
        ]
        Tuya::EXE.multi_exe('git', git_tag_commands, true)

        puts "\nPush tag: #{version}...".yellow
        git_tag_push_commands = [
                %W(push origin --tags)
        ]
        Tuya::EXE.multi_exe('git', git_tag_push_commands, true)

        require 'tycli/system'

        system = Tuya::System.instance

        group = system.group

        podspecs.each do |podspec_file|

                puts "\nPushing #{podspec_file}...".yellow

                pod_push =  "pod repo push #{group.spec} #{podspec_file} --sources='#{group.url},https://github.com/CocoaPods/Specs.git,https://github.com/TuyaInc/TYPublicSpecs.git' --use-libraries --allow-warnings"

                if verbose
                        pod_push = "#{pod_push} --verbose"
                end

                pod_push_result = `#{pod_push}`

                push_result = Tuya::PodSpec.local_pod_version_exist(version, group.spec, File.basename(FileUtils.pwd))


                if verbose
                        if pod_push_result.length > 10000

                                require 'tycli/util/file_util'
                                log_name = "repo_push_result_#{podspec_file}_#{version}.log"

                                if push_result
                                        log_name = "success_#{log_name}"
                                        puts "\nThe detail log is :#{log_name}\n".yellow
                                else
                                        log_name = "error_#{log_name}"
                                        puts "\nThe detail error log is :#{log_name}\n".red
                                end

                                TYUtil::TYFile.new_file("log", log_name, pod_push_result)
                        else

                                puts "The detail log is:\n".red
                                puts pod_push_result.magenta
                        end
                end

                if push_result
                        puts "Push #{podspec_file} Successful\n".green
                else
                        suggest_log(podspec_file, pod_push_result)
                end

        end
end
suggest_log(podspec_file, content) click to toggle source
# File lib/tycli/spec_repo.rb, line 90
def self.suggest_log(podspec_file, content)
        puts "\nPush #{podspec_file} Failed  you can use 'tuya repo push --verbose for more information' ".red
        require 'tycli/util/puts_util'
        TYUtil::TYPuts.filter(content, TYUtil::TYPuts::ERROR_KEYS)
end