DYAutomate 1.0.10 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fba69e8f13d39a2569e80ca6ee3507f63e3163327a17c04405a4217dcb6d97e6
4
- data.tar.gz: b2dfb0b058ded8166663e9f98445879e001f8e50b4723124c4a226734aab7d86
3
+ metadata.gz: ca40553f032c4e9d73485419d62ab39396340fa3c884ae22c9c323ea4222cc2a
4
+ data.tar.gz: 8c96d0b43dff6fe910d66967e233004907d8441b711a2a98a09a1f47575e7518
5
5
  SHA512:
6
- metadata.gz: f8aaaab77feac17d7b3d3ed6e9d10044447971621eb3906020ebc56d36859de68cb64c9e38f58d7de37a82fcccf9f2f1e6c604e2a468e945c079f0f17d468dd9
7
- data.tar.gz: a19ac413271aa7e0cfee305930ab6f4143a14112e1012d8f52c50ff707d8fce47ac5c4f8895b30cd10fde745bc2c077eae2d87ec4f5e87a58987682c2949913e
6
+ metadata.gz: 72d26755088d66ac96ba98e3f457e184bfa514db907b3ec49b48eecd5c03e60b5f1a54228b408b04fd3d09335ffa74f9ce4c23f2b9079b315d8ddd3db5a2cb5f
7
+ data.tar.gz: 07c5579de29bc7d0af3f67825f7cbfe94c68890b7fe4e4cdfc5e997480ae8a13d9b82b54444b40039139a715c6c082a0ae40c9d05c09dc6f18458bdb45c9083b
@@ -0,0 +1,36 @@
1
+ require 'yaml'
2
+
3
+ module DYAutomate
4
+ class DYBaseObj < Object
5
+
6
+ @public
7
+
8
+ def initialize
9
+ super
10
+ yield self if block_given?
11
+ end
12
+
13
+ def self.fromFile(path)
14
+ if File.exist?(path)
15
+ content = File.open(path, 'r:utf-8', &:read)
16
+ eval(content,nil,path.to_s)
17
+ end
18
+ end
19
+
20
+ #加载从yaml
21
+ def self.fromYAML(path)
22
+ if File.exist?(path)
23
+ content = File.open(path)
24
+ YAML.load(content)
25
+ end
26
+ end
27
+
28
+ #以yaml缓存
29
+ def doCacheByYAML(path)
30
+ if path
31
+ File.open(path, "w") { |file| YAML.dump(self, file) }
32
+ end
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,36 @@
1
+ module DYAutomate
2
+ # Disable the wrapping so the output is deterministic in the tests.
3
+ #
4
+ # UI.disable_wrap = true
5
+
6
+ # Redirects the messages to an internal store.
7
+ #
8
+ module UI
9
+ @output = ''
10
+ @warnings = ''
11
+ @next_input = ''
12
+
13
+ class << self
14
+ attr_accessor :output
15
+ attr_accessor :warnings
16
+ attr_accessor :next_input
17
+
18
+ def puts(message = '')
19
+ @output << "#{message}\n"
20
+ end
21
+
22
+ def warn(message = '', _actions = [])
23
+ @warnings << "#{message}\n"
24
+ end
25
+
26
+ def print(message)
27
+ @output << message
28
+ end
29
+
30
+ alias_method :gets, :next_input
31
+
32
+ def print_warnings
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,70 @@
1
+
2
+ module DYAutomate
3
+ class Command
4
+ class CodeGenerate < Command
5
+
6
+ # require 'Command/pod/push.rb'
7
+ # require 'Command/pod/version.rb'
8
+
9
+ self.abstract_command = false
10
+ self.command = 'code'
11
+ self.summary = '按照模版,自动生成代码'
12
+ # self.default_subcommand = 'list'
13
+ self.arguments = [
14
+ # CLAide::Argument.new('NAME', true),
15
+ ]
16
+
17
+ #当前路径
18
+ attr_accessor :path
19
+
20
+ def initialize(argv)
21
+ @path = Dir.pwd
22
+ super
23
+ end
24
+
25
+ def validate!
26
+ super
27
+ unless @config.templates_git_url
28
+ help! "
29
+ error -- >!!! Not found <templates_git_url> in the #{DYAutomateConfig::configFilePath}"
30
+ end
31
+
32
+ end
33
+
34
+ def run
35
+ clone_templates
36
+ exulateFile = File.join(@config.templates_cache_path,"ACMain.rb")
37
+ if File.exist?(exulateFile)
38
+ system("ruby #{exulateFile} #{Dir.pwd}")
39
+ else
40
+ UI.puts "cant find templates start file <ACMain.rb>."
41
+ end
42
+ end
43
+
44
+ def clone_templates
45
+ url = @config.templates_git_url
46
+ path = @config.templates_cache_path
47
+ system("rm -rf #{path}")
48
+ unless Dir.exist?(path)
49
+ Dir.mkdir(path,0777)
50
+ end
51
+ UI.puts("Cloning `#{url}` into `#{path}`.")
52
+ system("git clone #{url} --depth 1 #{path}")
53
+
54
+ end
55
+
56
+ # def check_git_version
57
+ # versionFile = File.join(@config.templates_cache_path,"version")
58
+ # isSame = false
59
+ # if File.exist?(versionFile)
60
+ # versionContent = File.open(versionFile, 'r:utf-8', &:read)
61
+ # if versionContent
62
+ # isSame = versionContent.chomp.eql?(@git_tag.chomp)
63
+ # end
64
+ # end
65
+ # isSame
66
+ # end
67
+
68
+ end
69
+ end
70
+ end
@@ -1,16 +1,19 @@
1
1
  require 'DYAutomate.rb'
2
2
  require 'version'
3
3
  require 'Core/CoreConfig'
4
+ require 'CustomConfig/DYAutomateConfig'
5
+ require 'Core/user_interface'
4
6
 
5
7
  module DYAutomate
6
8
  require 'CLAide'
7
-
9
+ include UI
8
10
  class Command < CLAide::Command
9
11
  include CoreConfig
10
12
  require 'Command/pod.rb'
11
13
  require 'Command/workspace.rb'
12
- # require 'Command/dgit.rb'
14
+ require 'Command/codeGenerate'
13
15
 
16
+ attr_accessor :config
14
17
  self.abstract_command = true
15
18
  self.command = 'dj'
16
19
  self.version = VERSION
@@ -23,6 +26,7 @@ module DYAutomate
23
26
  super
24
27
  @repoName = CoreConfig::Core_previte_repo_name
25
28
  @env_str = CoreConfig::Core_env_str
29
+ @config = DYAutomateConfig.loadConfig
26
30
  pp("当前环境变量 #{@env_str}",1)
27
31
  end
28
32
 
@@ -0,0 +1,120 @@
1
+ require 'Core/DYBaseObj'
2
+
3
+
4
+ module DYAutomate
5
+ class DYAutomateConfig < DYBaseObj
6
+ @public
7
+ #cache相关的路径
8
+ @@cachePath = File.join(Dir.home(),'Documents','.DYAutomate')
9
+ @@configFilePath = File.join(@@cachePath, 'DYConfigFile.rb')
10
+ @@configGitClonePath = File.join(@@cachePath, 'Git')
11
+ @@logsDirPath = File.join(@@cachePath, 'log')
12
+
13
+ attr_accessor :git
14
+ attr_accessor :git_tag
15
+ attr_accessor :templates_git_url
16
+ # attr_accessor :templates_git_url
17
+ attr_accessor :templates_cache_path
18
+
19
+
20
+ def initialize
21
+ super
22
+ end
23
+
24
+ def self.logsDirPath
25
+ @@logsDirPath
26
+ end
27
+
28
+ #从配置中心读取
29
+ def self.loadConfig
30
+ checkConfigFile?
31
+ cc = DYAutomateConfig::fromFile(@@configFilePath)
32
+ puts cc
33
+ cc.loadDetailFromGit if cc
34
+ cc
35
+ end
36
+
37
+ @private
38
+
39
+ #检测config.rb是否存在
40
+ def self.checkConfigFile?
41
+ path = File.join(@@configFilePath)
42
+ unless File.exist?(path)
43
+ creatConfigFile
44
+ puts "*** At first ,you should edit the config file at path<#{@@configFilePath}>!!"
45
+
46
+ `open #{@@configFilePath}`
47
+ end
48
+ end
49
+
50
+ #创建一个ConfigFile例子
51
+ def self.creatConfigFile
52
+
53
+ unless Dir.exist?(@@cachePath)
54
+ Dir.mkdir(@@cachePath,0777)
55
+ end
56
+
57
+ File.new(@@configFilePath,'w+')
58
+
59
+ f = File.open(@@configFilePath, "w+")
60
+ demo = <<-EOF
61
+ #DYAutomate 配置
62
+
63
+ DYAutomateConfig.new do |c|
64
+ c.git = ""
65
+ c.git_tag = ""
66
+ end
67
+ EOF
68
+
69
+ f.write(demo)
70
+ end
71
+
72
+ def check_git_dir
73
+ unless Dir.exist?(@@configGitClonePath)
74
+ Dir.mkdir(@@configGitClonePath,0777)
75
+ end
76
+ end
77
+
78
+ def check_git_version
79
+ versionFile = File.join(@@configGitClonePath,"version")
80
+ isSame = false
81
+ if File.exist?(versionFile)
82
+ versionContent = File.open(versionFile, 'r:utf-8', &:read)
83
+ if versionContent
84
+ isSame = versionContent.chomp.eql?(@git_tag.chomp)
85
+ end
86
+ end
87
+ isSame
88
+ end
89
+
90
+ def clone_git
91
+ check_git_dir
92
+ if @git_tag && @git
93
+ url = "#{@git} --branch #{@git_tag}"
94
+ # url = "#{@git} "
95
+ cloneOk = system "git clone #{url} #{@@configGitClonePath}"
96
+ if cloneOk
97
+ puts "加载配置成功。。。"
98
+ else
99
+ puts "clone #{url}失败!!"
100
+ end
101
+ else
102
+ puts
103
+ end
104
+ end
105
+
106
+ def loadDetailFromGit
107
+ puts "加载配置。。。"
108
+ check_git_dir
109
+ unless check_git_version
110
+ system("rm -rf #{@@configGitClonePath}")
111
+ clone_git
112
+ end
113
+ end
114
+
115
+ def templates_cache_path
116
+ File.join(@@cachePath,'templates')
117
+ end
118
+
119
+ end
120
+ end
@@ -1,3 +1,3 @@
1
1
  module DYAutomate
2
- VERSION = "1.0.10"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: DYAutomate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - 陈冬冬
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-19 00:00:00.000000000 Z
11
+ date: 2019-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -104,14 +104,14 @@ dependencies:
104
104
  name: cocoapods
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ">="
107
+ - - '='
108
108
  - !ruby/object:Gem::Version
109
109
  version: 1.6.1
110
110
  type: :runtime
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ">="
114
+ - - '='
115
115
  - !ruby/object:Gem::Version
116
116
  version: 1.6.1
117
117
  - !ruby/object:Gem::Dependency
@@ -139,6 +139,8 @@ files:
139
139
  - README.md
140
140
  - bin/dj
141
141
  - lib/Core/CoreConfig.rb
142
+ - lib/Core/DYBaseObj.rb
143
+ - lib/Core/user_interface.rb
142
144
  - lib/DYAutomate.rb
143
145
  - lib/DYAutomate/Command.rb
144
146
  - lib/DYAutomate/Command/Git/tagAdd.rb
@@ -146,9 +148,11 @@ files:
146
148
  - lib/DYAutomate/Command/Pod/version.rb
147
149
  - lib/DYAutomate/Command/Workspace/install.rb
148
150
  - lib/DYAutomate/Command/Workspace/update.rb
151
+ - lib/DYAutomate/Command/codeGenerate.rb
149
152
  - lib/DYAutomate/Command/dgit.rb
150
153
  - lib/DYAutomate/Command/pod.rb
151
154
  - lib/DYAutomate/Command/workspace.rb
155
+ - lib/DYAutomate/CustomConfig/DYAutomateConfig.rb
152
156
  - lib/DYAutomate/version.rb
153
157
  homepage: https://code.aliyun.com/iOSTools/DYAutomate.git
154
158
  licenses: