Class: Tuya::SpecRepo

Inherits:
Object
  • Object
show all
Defined in:
lib/tuya/cli/odm/spec_repo.rb

Class Method Summary collapse

Class Method Details

.push(version, is_commit_all, podspec, verbose) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/tuya/cli/odm/spec_repo.rb', line 3

def self.push(version, is_commit_all, podspec, verbose)

  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

  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)

  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

        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) ⇒ Object



80
81
82
83
# File 'lib/tuya/cli/odm/spec_repo.rb', line 80

def self.suggest_log(podspec_file, content)
  puts "\nPush #{podspec_file} Failed  you can use 'tuya repo push --verbose for more information' ".red
  TYUtil::TYPuts.filter(content, TYUtil::TYPuts::ERROR_KEYS)
end