Class: Tuya::TYGroup

Inherits:
Object
  • Object
show all
Defined in:
lib/tycli/group.rb

Class Method Summary collapse

Class Method Details

.create_spec(group) ⇒ Object



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
# File 'lib/tycli/group.rb', line 42

def self.create_spec(group)
  require 'tycli/config'
  
  config = Tuya::Config.new(group.name)

  local_spec_path = "#{config.path}spec/#{group.spec}"

  if File.exist? local_spec_path
    `rm -rf #{local_spec_path}`
  end

  `mkdir -p #{local_spec_path}`
  # `touch #{local_spec_path}/README.md`
  fh = File.new("#{local_spec_path}/README.md", 'w')
  fh.puts 'create by tuya-cli'
  fh.close

  origin_path = FileUtils.pwd

  FileUtils.cd "#{local_spec_path}"

  require 'tycli/executable'

  commands = [
    %W(init),
    %W(add -A),
    %W(commit -am init\ repo\ spec),
    %W(remote add origin #{group.url}),
    %W(push --set-upstream origin master)
  ]

  Tuya::EXE.multi_exe('git', commands, true)

  FileUtils.cd origin_path
end

.create_tuya_public_incObject



118
119
120
# File 'lib/tycli/group.rb', line 118

def self.create_tuya_public_inc
  `pod repo add TYPublicSpecs https://github.com/TuyaInc/TYPublicSpecs.git`
end

.create_tuya_public_inc_if_needObject



114
115
116
# File 'lib/tycli/group.rb', line 114

def self.create_tuya_public_inc_if_need
  create_tuya_public_inc unless is_tuya_public_inc_exist?
end

.is_local_repo_exist?(group_spec) ⇒ Boolean

Returns:

  • (Boolean)


102
103
104
105
106
107
108
# File 'lib/tycli/group.rb', line 102

def self.is_local_repo_exist?(group_spec)

  system = Tuya::System.instance
  local_path = system.pod_config.repos_dir + group_spec

  File.directory?(local_path)
end

.is_tuya_public_inc_exist?Boolean

Returns:

  • (Boolean)


110
111
112
# File 'lib/tycli/group.rb', line 110

def self.is_tuya_public_inc_exist?
  is_local_repo_exist? 'TYPublicSpecs'
end

.remote_spec_exist?(group) ⇒ Boolean

Returns:

  • (Boolean)


78
79
80
81
82
83
84
85
# File 'lib/tycli/group.rb', line 78

def self.remote_spec_exist?(group)

  require 'tycli/executable'

  result = Tuya::EXE.exe('git', %W(ls-remote #{group.url}))

  result.include? "refs/heads/master"
end

.setup_local_repo(group) ⇒ Object



87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/tycli/group.rb', line 87

def self.setup_local_repo(group)
  if is_local_repo_exist?(group.spec)
    system = Tuya::System.instance
    local_path = system.pod_config.repos_dir + group.spec
    FileUtils.rm_rf(local_path)
  end
  repo_add = "pod repo add #{group.spec} #{group.url}"
  `#{repo_add}`

  require 'tycli/config'
  puts "update local config: #{group.name}".yellow
  config = Tuya::Config.new(group.name)
  config.update_local_config
end

.setup_spec(group) ⇒ Object



37
38
39
40
# File 'lib/tycli/group.rb', line 37

def self.setup_spec(group)
  create_spec group unless remote_spec_exist? group
  setup_local_repo group
end

.statusObject



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
# File 'lib/tycli/group.rb', line 10

def self.status

  system = Tuya::System.instance

  group = system.group

  puts "can not find tuya group, please use 'tuya group create --name=group_name'".red unless group

  if group
    puts "#{group.name}".yellow
    puts "- Repo: #{group.spec}".green
    puts "- URL:  #{group.url}".green

    puts "\ncan not find #{group.spec}, please use 'tuya group create --name=group_name'".red unless is_local_repo_exist? group.spec
  end

  tuya_pub = is_tuya_public_inc_exist?

  puts "\ncan not find TYPublicSpecs please use 'pod repo add TYPublicSpecs https://github.com/TuyaInc/TYPublicSpecs.git'".red unless tuya_pub

  if tuya_pub
    puts "\nTYPublic".yellow
    puts "- Repo: TYPublicSpecs".green
    puts "- URL:  https://github.com/TuyaInc/TYPublicSpecs.git".green
  end
end

.update_tuya_public_incObject



122
123
124
125
# File 'lib/tycli/group.rb', line 122

def self.update_tuya_public_inc
  puts "\nUpdate TYPublicSpecs".yellow
  `pod repo update TYPublicSpecs`
end