tuya-cli-odm 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +43 -0
- data/bin/tuya-odm +7 -0
- data/lib/tuya/cli/odm.rb +37 -0
- data/lib/tuya/cli/odm/command.rb +38 -0
- data/lib/tuya/cli/odm/command/ci.rb +36 -0
- data/lib/tuya/cli/odm/command/ci/show_log_tips.rb +16 -0
- data/lib/tuya/cli/odm/command/group.rb +34 -0
- data/lib/tuya/cli/odm/command/group/create.rb +34 -0
- data/lib/tuya/cli/odm/command/group/init.rb +33 -0
- data/lib/tuya/cli/odm/command/group/status.rb +17 -0
- data/lib/tuya/cli/odm/command/lib.rb +25 -0
- data/lib/tuya/cli/odm/command/lib/create.rb +55 -0
- data/lib/tuya/cli/odm/command/lib/create_simple.rb +50 -0
- data/lib/tuya/cli/odm/command/repo.rb +40 -0
- data/lib/tuya/cli/odm/command/repo/push.rb +36 -0
- data/lib/tuya/cli/odm/config.rb +105 -0
- data/lib/tuya/cli/odm/data/data_odm.rb +9 -0
- data/lib/tuya/cli/odm/executable.rb +23 -0
- data/lib/tuya/cli/odm/git.rb +19 -0
- data/lib/tuya/cli/odm/group.rb +121 -0
- data/lib/tuya/cli/odm/lib.rb +91 -0
- data/lib/tuya/cli/odm/repo/spec.rb +89 -0
- data/lib/tuya/cli/odm/spec_repo.rb +85 -0
- data/lib/tuya/cli/odm/system.rb +23 -0
- data/lib/tuya/cli/odm/util/file_util.rb +12 -0
- data/lib/tuya/cli/odm/util/puts_util.rb +87 -0
- data/lib/tuya/cli/odm/version.rb +7 -0
- metadata +171 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 915fad0e9ce3a446c0cfb3faa702f78e386d50fb
|
4
|
+
data.tar.gz: c38af3be8c2618cf7b606980ff4199b7cfc9f732
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f124be844e922d8753ca813843fdb31667ff1a2d2ab154099adf559bb9cb5fe24a3e277ef96557c568851674a414e8d57ee7f49d3b417cf9126e6a5e9981d9bd
|
7
|
+
data.tar.gz: 30a77b15839c2cd00d7e8f7151afd8684bc8d709027f38a2551ac2cf18c4a0c82a3e7a3e4cdb05fe66bac82e462eb415fdf2b57baddc549b3b22e420f0ea8b00
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2018 fangdong
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# Tuya::Cli::Odm
|
2
|
+
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/tuya/cli/odm`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
+
|
5
|
+
TODO: Delete this and the text above, and describe your gem
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'tuya-cli-odm'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install tuya-cli-odm
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
TODO: Write usage instructions here
|
26
|
+
|
27
|
+
## Development
|
28
|
+
|
29
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
+
|
31
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/tuya-cli-odm. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
36
|
+
|
37
|
+
## License
|
38
|
+
|
39
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
40
|
+
|
41
|
+
## Code of Conduct
|
42
|
+
|
43
|
+
Everyone interacting in the Tuya::Cli::Odm project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/tuya-cli-odm/blob/master/CODE_OF_CONDUCT.md).
|
data/bin/tuya-odm
ADDED
data/lib/tuya/cli/odm.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
|
2
|
+
require 'ruby-progressbar'
|
3
|
+
require 'colored'
|
4
|
+
require 'tuya/ci/core'
|
5
|
+
|
6
|
+
require 'cocoapods'
|
7
|
+
require 'cocoapods/executable'
|
8
|
+
|
9
|
+
require 'tuya/cli/odm/executable'
|
10
|
+
|
11
|
+
require 'tuya/cli/odm/util/puts_util'
|
12
|
+
require 'tuya/cli/odm/util/file_util'
|
13
|
+
|
14
|
+
require 'tuya/cli/odm/data/data_odm'
|
15
|
+
|
16
|
+
require 'tuya/cli/odm/group'
|
17
|
+
|
18
|
+
require 'tuya/cli/odm/command'
|
19
|
+
require 'tuya/cli/odm/command/group'
|
20
|
+
require 'tuya/cli/odm/command/ci/show_log_tips'
|
21
|
+
require 'tuya/cli/odm/command/group/create'
|
22
|
+
require 'tuya/cli/odm/command/group/init'
|
23
|
+
require 'tuya/cli/odm/command/group/status'
|
24
|
+
require 'tuya/cli/odm/command/lib/create'
|
25
|
+
require 'tuya/cli/odm/command/repo/push'
|
26
|
+
|
27
|
+
|
28
|
+
require 'tuya/cli/odm/git'
|
29
|
+
|
30
|
+
require 'tuya/cli/odm/config'
|
31
|
+
|
32
|
+
require 'tuya/cli/odm/lib'
|
33
|
+
require 'tuya/cli/odm/system'
|
34
|
+
|
35
|
+
require 'tuya/cli/odm/repo/spec'
|
36
|
+
require 'tuya/cli/odm/spec_repo'
|
37
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
|
4
|
+
|
5
|
+
require 'claide'
|
6
|
+
require 'colored'
|
7
|
+
require 'tuya/cli/odm'
|
8
|
+
|
9
|
+
|
10
|
+
module Tuya
|
11
|
+
class Command < CLAide::Command
|
12
|
+
|
13
|
+
require 'tuya/cli/odm/command/lib'
|
14
|
+
#require 'tuya/cli/odm/command/ci'
|
15
|
+
require 'tuya/cli/odm/command/repo'
|
16
|
+
require 'tuya/cli/odm/command/group'
|
17
|
+
|
18
|
+
self.abstract_command = true
|
19
|
+
|
20
|
+
self.description = 'welcome to tuya-cli'
|
21
|
+
|
22
|
+
puts "\n
|
23
|
+
████████╗██╗ ██╗██╗ ██╗ █████╗
|
24
|
+
╚══██╔══╝██║ ██║╚██╗ ██╔╝██╔══██╗
|
25
|
+
██║ ██║ ██║ ╚████╔╝ ███████║
|
26
|
+
██║ ██║ ██║ ╚██╔╝ ██╔══██║
|
27
|
+
██║ ╚██████╔╝ ██║ ██║ ██║
|
28
|
+
╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ \n" .yellow
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
self.command = 'tuya'
|
33
|
+
|
34
|
+
def run
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
|
2
|
+
|
3
|
+
require 'tuya/cli/odm/command/ci/show_log_tips'
|
4
|
+
|
5
|
+
require 'tuya/cli/odm/command'
|
6
|
+
|
7
|
+
module Tuya
|
8
|
+
class Command
|
9
|
+
class CI < Command
|
10
|
+
|
11
|
+
self.abstract_command = true
|
12
|
+
|
13
|
+
self.summary = 'help for tuya ci'
|
14
|
+
self.command = 'ci'
|
15
|
+
|
16
|
+
self.description = <<-DESC
|
17
|
+
tuya ci helper
|
18
|
+
DESC
|
19
|
+
def self.options
|
20
|
+
[
|
21
|
+
['--te=te', 'te te t e']
|
22
|
+
].concat(super)
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize(argv)
|
26
|
+
super
|
27
|
+
end
|
28
|
+
|
29
|
+
def run
|
30
|
+
super
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Tuya
|
2
|
+
class Command
|
3
|
+
class CI < Command
|
4
|
+
class ShowLogTips < CI
|
5
|
+
self.abstract_command = false
|
6
|
+
self.summary = "show ci log error tips"
|
7
|
+
self.command = 'tips'
|
8
|
+
|
9
|
+
def run
|
10
|
+
puts("when ci build errors, you can search keyworkds: \n")
|
11
|
+
puts("- ERROR\nfatal error:\nfastlane finished with errors\n")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
|
2
|
+
|
3
|
+
require 'tuya/cli/odm/command/group/create'
|
4
|
+
require 'tuya/cli/odm/command/group/init'
|
5
|
+
require 'tuya/cli/odm/command/group/status'
|
6
|
+
|
7
|
+
require 'tuya/cli/odm/command'
|
8
|
+
|
9
|
+
module Tuya
|
10
|
+
class Command
|
11
|
+
class Group < Command
|
12
|
+
|
13
|
+
self.abstract_command = true
|
14
|
+
|
15
|
+
self.summary = 'help manage your group'
|
16
|
+
self.command = 'group'
|
17
|
+
|
18
|
+
self.description = <<-DESC
|
19
|
+
tuya group helper
|
20
|
+
DESC
|
21
|
+
|
22
|
+
def self.options
|
23
|
+
[
|
24
|
+
['--name=group_name', '--name the name for your group']
|
25
|
+
]
|
26
|
+
end
|
27
|
+
|
28
|
+
def run
|
29
|
+
super
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Tuya
|
2
|
+
class Command
|
3
|
+
class Group < Command
|
4
|
+
class GroupCreate < Group
|
5
|
+
self.abstract_command = false
|
6
|
+
self.summary = "create a remote repo spec(if need) & init your local repo spec"
|
7
|
+
self.command = 'create'
|
8
|
+
|
9
|
+
def run
|
10
|
+
puts "group name is #{@name}".green
|
11
|
+
|
12
|
+
group = Tuya::ConfigGroup.new(@name)
|
13
|
+
Tuya::TYGroup.setup_spec group
|
14
|
+
Tuya::TYGroup.create_tuya_public_inc_if_need
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.options
|
18
|
+
[
|
19
|
+
['--name=group_name', '--name the name for your group']
|
20
|
+
]
|
21
|
+
end
|
22
|
+
|
23
|
+
def initialize(argv)
|
24
|
+
super
|
25
|
+
@name = argv.option('name')
|
26
|
+
end
|
27
|
+
|
28
|
+
def validate!
|
29
|
+
help! "name need" unless @name
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Tuya
|
2
|
+
class Command
|
3
|
+
class Group < Command
|
4
|
+
class GroupInit < Group
|
5
|
+
self.abstract_command = false
|
6
|
+
self.summary = "init your local repo spec"
|
7
|
+
self.command = 'init'
|
8
|
+
|
9
|
+
def run
|
10
|
+
puts "group name is #{@name}".green
|
11
|
+
|
12
|
+
group = Tuya::ConfigGroup.new(@name)
|
13
|
+
Tuya::TYGroup.setup_local_repo group
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.options
|
17
|
+
[
|
18
|
+
['--name=group_name', '--name the name for your group']
|
19
|
+
]
|
20
|
+
end
|
21
|
+
|
22
|
+
def initialize(argv)
|
23
|
+
super
|
24
|
+
@name = argv.option('name')
|
25
|
+
end
|
26
|
+
|
27
|
+
def validate!
|
28
|
+
help! "name need" unless @name
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
module Tuya
|
4
|
+
class Command
|
5
|
+
class Group < Command
|
6
|
+
class GroupStatus < Group
|
7
|
+
self.abstract_command = false
|
8
|
+
self.summary = "show your local tuya repo status"
|
9
|
+
self.command = 'status'
|
10
|
+
|
11
|
+
def run
|
12
|
+
Tuya::TYGroup.status
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
|
2
|
+
|
3
|
+
require 'tuya/cli/odm/command/lib/create'
|
4
|
+
|
5
|
+
require 'tuya/cli/odm/command'
|
6
|
+
|
7
|
+
module Tuya
|
8
|
+
class Command
|
9
|
+
class Lib < Command
|
10
|
+
|
11
|
+
self.abstract_command = true
|
12
|
+
|
13
|
+
self.summary = 'create tuya module'
|
14
|
+
self.command = 'lib'
|
15
|
+
|
16
|
+
self.description = "tuya module tools"
|
17
|
+
|
18
|
+
def run
|
19
|
+
super
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Tuya
|
2
|
+
class Command
|
3
|
+
class Lib < Command
|
4
|
+
class Create < Lib
|
5
|
+
self.abstract_command = false
|
6
|
+
self.summary = "create tuya module"
|
7
|
+
self.command = 'create'
|
8
|
+
|
9
|
+
def self.options
|
10
|
+
[
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize(argv)
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
def run
|
19
|
+
puts "Start create tuya module...".yellow
|
20
|
+
|
21
|
+
createModule
|
22
|
+
|
23
|
+
puts "create module successful".green
|
24
|
+
puts "\n\n我们默认添加了SDK依赖, 可在Podfile文件中查看, SDK文档及使用请参考:".green
|
25
|
+
puts "https://github.com/TuyaInc/tuyasmart_home_ios_sdk\n".magenta.underline
|
26
|
+
puts "我们的文档地址:".green
|
27
|
+
puts "https://tuyainc.github.io/\n".magenta.underline
|
28
|
+
|
29
|
+
Tuya::TYLib.create_lib @template
|
30
|
+
end
|
31
|
+
|
32
|
+
def showProgress
|
33
|
+
progressbar = ProgressBar.create
|
34
|
+
100.times { progressbar.increment; sleep 3 }
|
35
|
+
end
|
36
|
+
|
37
|
+
def createModule
|
38
|
+
|
39
|
+
system = Tuya::System.instance
|
40
|
+
|
41
|
+
group = system.group
|
42
|
+
|
43
|
+
if group
|
44
|
+
template = TYCiCore::TYTemplate.new(group.name)
|
45
|
+
template.create
|
46
|
+
@template = template
|
47
|
+
else
|
48
|
+
puts "\nCan not find your Tuya Group, please use 'tuya group create --name=group_name'".red
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Tuya
|
2
|
+
class Command
|
3
|
+
class Lib < Command
|
4
|
+
class CreateSimple < Lib
|
5
|
+
self.abstract_command = false
|
6
|
+
self.summary = "create a module"
|
7
|
+
self.command = 'create-simple'
|
8
|
+
|
9
|
+
def self.options
|
10
|
+
[
|
11
|
+
['--name=module_name', '--name to named your module']
|
12
|
+
].concat(super)
|
13
|
+
end
|
14
|
+
|
15
|
+
def validate!
|
16
|
+
help! "name need" unless @name
|
17
|
+
end
|
18
|
+
|
19
|
+
def initialize(argv)
|
20
|
+
super
|
21
|
+
@name = argv.option('name')
|
22
|
+
end
|
23
|
+
|
24
|
+
def run
|
25
|
+
|
26
|
+
puts "do create a simple module named: #{@name}".green
|
27
|
+
|
28
|
+
progressbar = ProgressBar.create
|
29
|
+
15.times { progressbar.increment; sleep 2 }
|
30
|
+
|
31
|
+
t_c = Thread.new {createModule()}
|
32
|
+
|
33
|
+
t_c.join
|
34
|
+
progressbar.finish
|
35
|
+
|
36
|
+
puts "end create simple module: #{@name}".green
|
37
|
+
end
|
38
|
+
|
39
|
+
def createModule
|
40
|
+
result = `pod lib create #{@name} --template-url=https://code.registry.wgine.com/client-platform/pod-template-simple.git`
|
41
|
+
result.each_line do |s|
|
42
|
+
if s.include?("fatal")
|
43
|
+
puts "#{s}".red
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|