ruby 使用此脚本检查每个客户端conf是否具有默认方案集(如果需要)。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 使用此脚本检查每个客户端conf是否具有默认方案集(如果需要)。相关的知识,希望对你有一定的参考价值。

require 'json'
require 'pp'
require 'pathname'

CONF_PATH = '/Users/davidteren/Projects/IMQS/_conf'

def absolute_paths_of_dir_contents(dir, list = '*')
  path = File.join(dir, list)
  Dir.glob(path) - %w(. .. .DS_Store)
end

def path_basename(path)
  Pathname.new(path).basename.to_s
end

def a_git_repo?(dir)
  File.exist?(File.join(dir, '.git', 'config'))
end

def select_repos(dirs)
  dirs.select do |dir|
    a_git_repo?(dir)
  end
end

def absolute_paths_for_repos(path)
  select_repos(absolute_paths_of_dir_contents(path, '*/'))
end

def client_modules(json)
  json['modules']
end


def read_json(conf)
  JSON.parse(File.read(File.join(conf, 'client-config-public.json')))
end

def test_scenarios(modul)
  unless modul['scenarios'].nil?
    unless modul['scenarios'].include?('04') || modul['scenarios'].include?('02')
      if modul['defaultScenarios'].nil?
        return 'FAIL!'
      end
    end
    'OK!'
  end
end

def show_results(conf_path, has_tablesearch, modules)
  puts "CONF: #{path_basename conf_path}"
  puts "MODULES COUNT: #{modules.size}"
  puts "Has 'tablesearch': #{has_tablesearch}"
  counter = 0
  modules.each do |modul|
    puts "#{counter += 1} : #{modul['name']} : #{test_scenarios(modul)}"
  end
  puts "####################################\n\n"
end

def process_confs
  absolute_paths_for_repos(CONF_PATH).each do |conf_path|
    # next unless conf_path.include?('uat') || conf_path.include?('gls')
    client_json = read_json(conf_path)
    next if client_json['feature-flags'].is_a?(NilClass)
    has_tablesearch = client_json['feature-flags']['tablesearch']
    next unless has_tablesearch
    modules = client_json['modules']
    show_results(conf_path, has_tablesearch, modules)
  end
end

process_confs

以上是关于ruby 使用此脚本检查每个客户端conf是否具有默认方案集(如果需要)。的主要内容,如果未能解决你的问题,请参考以下文章

用于检查网站是不是具有搜索引擎友好 URL 的 Ruby 代码

检查DNSBL(RBLs)中是否列出了IP地址的Ruby脚本

如何检查数据库中每个用户是不是存在行值

ruby Ping一个电子邮件地址以查看它是否存在。此脚本解析MX记录以查找负责向广告发送邮件的SMTP服务器

刷新浏览器后的 Ruby 全局变量

如何检查 csh 脚本中是不是存在任何文件?