stool 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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