美文网首页
Ruby 替换三方指定指定文件内容

Ruby 替换三方指定指定文件内容

作者: writeSpace | 来源:发表于2021-08-31 16:30 被阅读0次

创建 BLHelp.rb 用.rb格式

#!/usr/bin/ruby

def reference_file(installer, folder)

    path = Pathname(File.expand_path(folder, __dir__))

    installer.pods_project.main_group.new_reference(path)

end





def find_and_replace(dir, findstr, replacestr, mark)

\# 判断文件是否存在

if File.exist?(dir) == false

    return   puts "不存在" + dir

end



\# 判断文件是否有写入权限

   p=File.writable?( dir )

   if p == false #没有则赋予权限

    File.chmod(0644, dir)

   end



        Dir[dir].each do |name|

            text = File.read(name)

\# 判断内容是否有标记  有标记则代表更换过

            if text.include?mark

                puts "包含"

            else

                replace = text.gsub(findstr,replacestr)

                puts "replace"

                puts replace

                if text != replace #是否相等 不等在替换

                    File.open(name, "w+") { |file| file.puts replace }

                    puts "Fix: " + name

                STDOUT.flush

                else

                    puts "一样"

                end

            end

        end

        Dir[dir + '*/'].each(&method(:find_and_replace))

end

Podfile 文件中调用 (修改pod 三方库中指定文件内的代码)

reference_file(installer, 'BLHelp.rb') ##把 BLHelp.rb文件显示在Pod目录下和podfile 一样
    ## Fix for XCode 12.5 修改文件
  find_and_replace("Pods/FBRetainCycleDetector/FBRetainCycleDetector/Layout/Classes/FBClassStrongLayout.mm",
                     "layoutCache[currentClass] = ivars;", "layoutCache[(id<NSCopying>)currentClass] = ivarss;//mark","//mark")

相关文章

网友评论

      本文标题:Ruby 替换三方指定指定文件内容

      本文链接:https://www.haomeiwen.com/subject/pomziltx.html