stool 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/stool/Command/Lib.rb +1 -2
- data/lib/stool/Command/LibPool/Add.rb +1 -4
- data/lib/stool/Command/Repo/CacheClean.rb +32 -0
- data/lib/stool/Command/Repo.rb +21 -0
- data/lib/stool/Command/WorkSpace/list.rb +0 -2
- data/lib/stool/Command/WorkSpace/update.rb +38 -24
- data/lib/stool/Command/WorkSpace.rb +29 -0
- data/lib/stool/Core/BaseObj.rb +21 -1
- data/lib/stool/Core/Cache.rb +6 -0
- data/lib/stool/Core/Config.rb +15 -7
- data/lib/stool/Core/LibInfo.rb +6 -2
- data/lib/stool/Core/TaskInfo.rb +26 -2
- data/lib/stool/Core/repoInfo.rb +39 -0
- data/lib/stool/Utils/ArrayUtile.rb +9 -0
- data/lib/stool/version.rb +1 -1
- metadata +6 -2
- data/lib/VERSION.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca7802d81948fa28cf6f1e5f6b58af037f4486f0
|
4
|
+
data.tar.gz: e96efdffc43381497d9daa490ec34c4953c7389b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96b36aeb50ae71d9e0a2e838255e3ba7c8f52554d70773d742a27b2a247e42c965d75209296a5a58809760581f564e6b17fa023bd98d004aca12e0f173dea552
|
7
|
+
data.tar.gz: 3b56660f045840b496fa14a45fb569863eba8644b108e28be1953ddfb7d44d6aebb53fff0ddb42d73c9fe39353d0fbc2e498f1b067b690722bb5e899406d773c
|
data/lib/stool/Command/Lib.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
#查看当前pool列表
|
2
|
+
module Stool
|
3
|
+
class Command
|
4
|
+
class Repo < Command
|
5
|
+
class CacheClean < Repo
|
6
|
+
|
7
|
+
self.command = 'cc'
|
8
|
+
self.summary = '清除相关缓存'
|
9
|
+
|
10
|
+
self.arguments = [
|
11
|
+
CLAide::Argument.new('NAME', false),
|
12
|
+
]
|
13
|
+
|
14
|
+
def initialize(argv)
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
#查看当前的pool list
|
19
|
+
def run
|
20
|
+
pp('')
|
21
|
+
pp('**Pool list')
|
22
|
+
List::pools_from_config.map do |pInfo|
|
23
|
+
pInfo.info_tos
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
@public
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#私有库的池,池中有多个lib
|
2
|
+
require 'Core/RepoInfo'
|
3
|
+
|
4
|
+
module Stool
|
5
|
+
class Command
|
6
|
+
class Repo < Command
|
7
|
+
|
8
|
+
require 'Command/Repo/CacheClean'
|
9
|
+
|
10
|
+
self.abstract_command = true
|
11
|
+
self.command = 'rp'
|
12
|
+
self.summary = 'cocoapods的repos信息,及相关操作'
|
13
|
+
# self.default_subcommand = 'list'
|
14
|
+
|
15
|
+
def initialize(argv)
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
#对执行pod update的整合
|
2
|
+
require 'Utils/ArrayUtile'
|
2
3
|
|
3
4
|
module Stool
|
4
5
|
class Command
|
@@ -21,36 +22,27 @@ module Stool
|
|
21
22
|
unless @tag
|
22
23
|
help! 'need the tag of workspace you configed.'
|
23
24
|
end
|
24
|
-
|
25
25
|
unless existAtConfig?
|
26
26
|
help! "To run, please ensure the tag(#{@tag}) exist."
|
27
27
|
end
|
28
|
-
|
29
28
|
unless hasPodfile?(@info.path)
|
30
29
|
help! 'To run, please ensure the workspace contain a podfile in zhe folder.' + "#{@info.path}"
|
31
30
|
end
|
32
|
-
|
33
31
|
super
|
34
32
|
end
|
35
33
|
|
36
34
|
@public
|
37
35
|
|
38
36
|
def run
|
39
|
-
repos_up
|
40
|
-
|
37
|
+
# repos_up
|
41
38
|
localLibs_git_up
|
42
|
-
|
43
|
-
@info.
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
pod_update
|
50
|
-
|
51
|
-
@info.resetPofile
|
52
|
-
|
53
|
-
@info.open_task
|
39
|
+
# @info.task_git_up
|
40
|
+
# @info.edit_podfile_use_loaclLibs
|
41
|
+
# del_folers
|
42
|
+
# check_lastUpdate
|
43
|
+
# pod_update
|
44
|
+
# @info.resetPofile
|
45
|
+
# @info.open_task
|
54
46
|
end
|
55
47
|
|
56
48
|
#更新相关repo(除了master)
|
@@ -86,26 +78,48 @@ module Stool
|
|
86
78
|
end
|
87
79
|
end
|
88
80
|
|
81
|
+
include ArrayUtile
|
82
|
+
#检测上一次更新用到的lib,源码是否与本次有冲突
|
83
|
+
def check_lastUpdate
|
84
|
+
lastTaskInfo = TaskInfo::fromYAML(pathForTaskInfo_last_pod_update)
|
85
|
+
unless lastTaskInfo
|
86
|
+
cleanAllCache
|
87
|
+
return
|
88
|
+
end
|
89
|
+
|
90
|
+
if lastTaskInfo.allUseCode != @info.allUseCode
|
91
|
+
cleanAllCache
|
92
|
+
return
|
93
|
+
end
|
94
|
+
|
95
|
+
diff = diffOf(lastTaskInfo.otherCode,@info.otherCode)
|
96
|
+
diff.each do |x|
|
97
|
+
puts "--- 清除lib缓存:#{x} ..."
|
98
|
+
`pod cache clean #{x} --all`
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
89
102
|
#执行pod update
|
90
103
|
def pod_update
|
91
104
|
useCode = @info.localLibs + @info.otherCode
|
92
|
-
|
93
105
|
useCode.collect! {|item|
|
94
|
-
|
95
106
|
item + "_use_code=1 "
|
96
107
|
}
|
108
|
+
libs_useCode = useCode.join
|
109
|
+
if @info.allUseCode
|
110
|
+
libs_useCode = 'use_code=1' + libs_useCode
|
111
|
+
end
|
97
112
|
|
98
|
-
|
113
|
+
@info.doCacheByYAML(pathForTaskInfo_last_pod_update)
|
99
114
|
|
115
|
+
puts "---源码库有" + libs_useCode
|
100
116
|
Dir.chdir(@info.path)
|
101
|
-
|
102
117
|
puts '---当前目录' + Dir.getwd
|
103
|
-
|
104
118
|
puts "---update中...."
|
105
|
-
puts `#{
|
119
|
+
# puts `#{libs_useCode} pod update --no-repo-update`
|
106
120
|
end
|
107
121
|
|
108
122
|
end
|
109
123
|
end
|
110
124
|
end
|
111
|
-
end
|
125
|
+
end
|
@@ -48,6 +48,7 @@ module Stool
|
|
48
48
|
@info
|
49
49
|
end
|
50
50
|
|
51
|
+
#获取task用的所有repos
|
51
52
|
def getAllRepos
|
52
53
|
arr = []
|
53
54
|
if @info.repos.count == 0
|
@@ -63,6 +64,34 @@ module Stool
|
|
63
64
|
arr
|
64
65
|
end
|
65
66
|
|
67
|
+
def pathForTaskInfo_last_pod_update
|
68
|
+
unless Dir.exist?(Config::logsDirPath)
|
69
|
+
Dir.mkdir(Config::logsDirPath)
|
70
|
+
end
|
71
|
+
File.join(Config::logsDirPath, 'TaskInfo_lastUpdate.yaml')
|
72
|
+
end
|
73
|
+
|
74
|
+
#清理所有pod缓存(除master repo的pod)
|
75
|
+
def cleanAllCache
|
76
|
+
puts "clean all cache"
|
77
|
+
hasClean = []
|
78
|
+
path = @@config.repoCachePath
|
79
|
+
Dir.entries(path).each{|file|
|
80
|
+
if file['.'] || file.eql?('master')
|
81
|
+
#do nothing
|
82
|
+
else
|
83
|
+
podCache = File.join(path,file)
|
84
|
+
Dir.entries(podCache).sort.each{|podName|
|
85
|
+
unless hasClean.include?(podName) || podName['.']
|
86
|
+
puts "清理缓存#{podName} "
|
87
|
+
puts `pod cache clean #{podName}`
|
88
|
+
hasClean.push(podName)
|
89
|
+
end
|
90
|
+
}
|
91
|
+
end
|
92
|
+
}
|
93
|
+
end
|
94
|
+
|
66
95
|
end
|
67
96
|
end
|
68
97
|
end
|
data/lib/stool/Core/BaseObj.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
|
+
|
2
|
+
# require 'Object'
|
3
|
+
require 'yaml'
|
4
|
+
|
1
5
|
module Stool
|
2
|
-
class BaseObj
|
6
|
+
class BaseObj < Object
|
3
7
|
|
4
8
|
@public
|
5
9
|
|
6
10
|
def initialize
|
11
|
+
super
|
7
12
|
yield self if block_given?
|
8
13
|
end
|
9
14
|
|
@@ -14,5 +19,20 @@ module Stool
|
|
14
19
|
end
|
15
20
|
end
|
16
21
|
|
22
|
+
#加载从yaml
|
23
|
+
def self.fromYAML(path)
|
24
|
+
if File.exist?(path)
|
25
|
+
content = File.open(path)
|
26
|
+
YAML.load(content)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
#以yaml缓存
|
31
|
+
def doCacheByYAML(path)
|
32
|
+
if path
|
33
|
+
File.open(path, "w") { |file| YAML.dump(self, file) }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
17
37
|
end
|
18
38
|
end
|
data/lib/stool/Core/Config.rb
CHANGED
@@ -6,18 +6,19 @@ require 'Core/TaskInfo'
|
|
6
6
|
module Stool
|
7
7
|
class Config < BaseObj
|
8
8
|
|
9
|
-
|
9
|
+
@public
|
10
|
+
#cache相关的路径
|
10
11
|
@@cachePath = File.join(Dir.home(),'stool')
|
11
12
|
@@configFilePath = File.join(@@cachePath, 'ConfigFile.rb')
|
13
|
+
@@logsDirPath = File.join(@@cachePath, 'log')
|
14
|
+
|
12
15
|
#本地lib池子
|
13
16
|
attr_accessor :pools
|
14
17
|
#主工程
|
15
18
|
attr_accessor :tasks
|
16
|
-
|
19
|
+
#cocoapods的repo缓存路径
|
17
20
|
attr_accessor :repoCachePath
|
18
21
|
|
19
|
-
@public
|
20
|
-
|
21
22
|
def initialize
|
22
23
|
@repoCachePath = File.join(Dir.home,'.cocoapods/repos')
|
23
24
|
@pools = []
|
@@ -25,6 +26,10 @@ module Stool
|
|
25
26
|
super
|
26
27
|
end
|
27
28
|
|
29
|
+
def self.logsDirPath
|
30
|
+
@@logsDirPath
|
31
|
+
end
|
32
|
+
|
28
33
|
#从配置中心读取
|
29
34
|
def self.loadConfig
|
30
35
|
checkConfigFile?
|
@@ -76,7 +81,6 @@ module Stool
|
|
76
81
|
demo = <<-EOF
|
77
82
|
#stool 配置
|
78
83
|
Config.new do |c|
|
79
|
-
|
80
84
|
#添加一个本地lib pool
|
81
85
|
c.addPool do |p|
|
82
86
|
p.name = '本地lib池 - 凤凰'
|
@@ -95,11 +99,15 @@ module Stool
|
|
95
99
|
t.tag = '1'
|
96
100
|
t.path = '/Users/syswin/Documents/Siyuan/Libs/phenix/tlauncher/TLauncher'
|
97
101
|
#项目使用的本地lib,默认都是源码
|
98
|
-
|
102
|
+
addLocalLib(['tcardReader',
|
99
103
|
'tcardLibrary',
|
100
104
|
'tcardKit',
|
101
105
|
'tcontentGroup',
|
102
|
-
'tcontentCommon']
|
106
|
+
'tcontentCommon'])
|
107
|
+
#非本地lib,配置使用源码
|
108
|
+
addOtherLibUseCode(['tcard'])
|
109
|
+
#是否所有lib都使用源码,默认false
|
110
|
+
#allLibsUseCode
|
103
111
|
end
|
104
112
|
|
105
113
|
end
|
data/lib/stool/Core/LibInfo.rb
CHANGED
data/lib/stool/Core/TaskInfo.rb
CHANGED
@@ -16,6 +16,7 @@ module Stool
|
|
16
16
|
attr_accessor :localLibs
|
17
17
|
#其他源码指定
|
18
18
|
attr_accessor :otherCode
|
19
|
+
attr_accessor :allUseCode
|
19
20
|
|
20
21
|
#指定的repo
|
21
22
|
attr_accessor :repos
|
@@ -24,6 +25,7 @@ module Stool
|
|
24
25
|
@localLibs = []
|
25
26
|
@otherCode = []
|
26
27
|
@repos = []
|
28
|
+
@allUseCode = false
|
27
29
|
super
|
28
30
|
end
|
29
31
|
|
@@ -35,9 +37,32 @@ module Stool
|
|
35
37
|
self.localLibs.sort.map do |lib|
|
36
38
|
puts(' ' + lib.to_s)
|
37
39
|
end
|
40
|
+
puts('--' + 'otherCode:')
|
41
|
+
self.otherCode.sort.map do |lib|
|
42
|
+
puts(' ' + lib.to_s)
|
43
|
+
end
|
44
|
+
puts('--' + 'allUseCode:'+ self.allUseCode.to_s)
|
38
45
|
puts('')
|
39
46
|
end
|
40
47
|
|
48
|
+
def addLocalLib(libs)
|
49
|
+
libs.each do |lib|
|
50
|
+
@localLibs.push(lib)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def addOtherLibUseCode(libs)
|
55
|
+
libs.each do |lib|
|
56
|
+
@otherCode.push(lib)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def allLibsUseCode
|
61
|
+
@allUseCode = true
|
62
|
+
end
|
63
|
+
|
64
|
+
########################
|
65
|
+
|
41
66
|
def open_task
|
42
67
|
`open *.xcworkspace`
|
43
68
|
end
|
@@ -123,9 +148,8 @@ module Stool
|
|
123
148
|
file.write(newStr)
|
124
149
|
end
|
125
150
|
end
|
126
|
-
|
127
151
|
end
|
128
|
-
|
129
152
|
end
|
153
|
+
|
130
154
|
end
|
131
155
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#本地lib池
|
2
|
+
require 'Core/BaseObj'
|
3
|
+
|
4
|
+
module Stool
|
5
|
+
class RepoInfo < BaseObj
|
6
|
+
attr_accessor :name
|
7
|
+
attr_accessor :path
|
8
|
+
|
9
|
+
def info_tos
|
10
|
+
puts('--' + 'name:'+ self.name)
|
11
|
+
puts('--' + 'path:'+ self.path)
|
12
|
+
puts('--' + 'Repos:')
|
13
|
+
subDirs.sort.each do |f|
|
14
|
+
unless f['.']
|
15
|
+
puts ' ' + f.to_s
|
16
|
+
end
|
17
|
+
end
|
18
|
+
puts('')
|
19
|
+
end
|
20
|
+
|
21
|
+
#本地搜索一个lib
|
22
|
+
def searchLib(name)
|
23
|
+
libInfo = nil
|
24
|
+
if subDirs.include?(name)
|
25
|
+
libInfo = LibInfo::loadFromPath(File.join(@path,name))
|
26
|
+
end
|
27
|
+
libInfo
|
28
|
+
end
|
29
|
+
|
30
|
+
def subDirs
|
31
|
+
arr = []
|
32
|
+
if @path
|
33
|
+
arr = Dir.entries(@path)
|
34
|
+
end
|
35
|
+
arr
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
data/lib/stool/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fiend
|
@@ -138,7 +138,6 @@ extra_rdoc_files: []
|
|
138
138
|
files:
|
139
139
|
- README.md
|
140
140
|
- bin/sl
|
141
|
-
- lib/VERSION.rb
|
142
141
|
- lib/stool.rb
|
143
142
|
- lib/stool/Command.rb
|
144
143
|
- lib/stool/Command/Lib.rb
|
@@ -146,15 +145,20 @@ files:
|
|
146
145
|
- lib/stool/Command/LibPool.rb
|
147
146
|
- lib/stool/Command/LibPool/Add.rb
|
148
147
|
- lib/stool/Command/LibPool/List.rb
|
148
|
+
- lib/stool/Command/Repo.rb
|
149
|
+
- lib/stool/Command/Repo/CacheClean.rb
|
149
150
|
- lib/stool/Command/WorkSpace.rb
|
150
151
|
- lib/stool/Command/WorkSpace/list.rb
|
151
152
|
- lib/stool/Command/WorkSpace/update.rb
|
152
153
|
- lib/stool/Core/BaseObj.rb
|
154
|
+
- lib/stool/Core/Cache.rb
|
153
155
|
- lib/stool/Core/Config.rb
|
154
156
|
- lib/stool/Core/Git.rb
|
155
157
|
- lib/stool/Core/LibInfo.rb
|
156
158
|
- lib/stool/Core/PoolInfo.rb
|
157
159
|
- lib/stool/Core/TaskInfo.rb
|
160
|
+
- lib/stool/Core/repoInfo.rb
|
161
|
+
- lib/stool/Utils/ArrayUtile.rb
|
158
162
|
- lib/stool/Utils/StringUtil.rb
|
159
163
|
- lib/stool/version.rb
|
160
164
|
homepage: https://rubygems.org/gems/Stool
|
data/lib/VERSION.rb
DELETED