Class: Pod::Command::UpdateAll
- Inherits:
-
Pod::Command
- Object
- Pod::Command
- Pod::Command::UpdateAll
- Defined in:
- lib/cocoapods-wxpodhook/helper.rb
Instance Method Summary collapse
-
#getPrepareUpdateComponents(prepareUpdateComponentsPath) ⇒ Object
拿到待更新的组件名.
- #run ⇒ Object
-
#version_isEqual(curversion, repoversion) ⇒ Object
版本号对比.
Instance Method Details
#getPrepareUpdateComponents(prepareUpdateComponentsPath) ⇒ Object
拿到待更新的组件名
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/cocoapods-wxpodhook/helper.rb', line 103 def getPrepareUpdateComponents(prepareUpdateComponentsPath) prepareUpdateComponents = Array.new(); # prepareUpdateComponentsPath不存在的异常需要处理 file = File.open(prepareUpdateComponentsPath) file.each_line {|line| if line.start_with?("- ") # puts "**** #{line}" # line内容的示例如下: - AFNetworking 3.2.0 -> 3.2.0 (latest version 4.0.1) array = line.split(' ') if array.size > 4 # 拿到组件名 component_name = array[1] # 拿到当前的版本号 component_curversion = array[2] # 拿到repo中的版本号 component_repoversion = array[4] # 如果版本号不相等则认为需要更新 if !self.version_isEqual(component_curversion, component_repoversion) prepareUpdateComponents.push(component_name) end end end } file.close # 删除文件 FileUtils.rm_r(prepareUpdateComponentsPath) return prepareUpdateComponents end |
#run ⇒ Object
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/cocoapods-wxpodhook/helper.rb', line 139 def run before = Time.new # 先更新repo #CocoapodsWxpodhook::Helper.new().AutoUpdateRepo(); # 先拿到当前脚本执行的文件路径 currentFilePath = Dir.pwd # 待更新的组件txt目录 prepareUpdateComponentsPath = File.join(currentFilePath, "prepareUpdateComponents.txt") # puts prepareUpdateComponentsPath # 先删除已存在的txt文件 if FileTest.exist?(prepareUpdateComponentsPath) FileUtils.rm_r(prepareUpdateComponentsPath) end put_redMsg("组件是否需要更新比对中") # 先执行pod outdated `pod outdated --no-repo-update > #{prepareUpdateComponentsPath}` # 解析txt文件,拿到待更新的组件数组 componentArr = self.getPrepareUpdateComponents(prepareUpdateComponentsPath) prepareUpdateComponentStr = componentArr.join(" ") if componentArr.size == 0 || prepareUpdateComponentStr.length == 0 put_redMsg("暂无需要更新的组件") return end put_redMsg("待更新的组件列表如下 \n #{prepareUpdateComponentStr}") put_redMsg("开始更新组件 \n #{prepareUpdateComponentStr}") # 执行pod update `pod update #{prepareUpdateComponentStr} --no-repo-update` now = Time.new(); time = now.to_i - before.to_i; put_redMsg("组件更新完毕,共耗时 #{time}秒") end |
#version_isEqual(curversion, repoversion) ⇒ Object
版本号对比
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/cocoapods-wxpodhook/helper.rb', line 76 def version_isEqual(curversion, repoversion) if curversion == repoversion return true else if repoversion.start_with?(curversion) # 截取剩下的字符串 splitedStr = repoversion.delete(curversion) splitedStrArr = splitedStr.split(".") sum = 0 puts "abcdefg #{splitedStrArr}" splitedStrArr.each do |item| sum += item.to_i end if sum == 0 return true else return false end else return false end end end |