common.rb 875 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. require 'json'
  2. require 'fileutils'
  3. $res_root = (lambda {
  4. dir = File.dirname(__FILE__)
  5. loop do
  6. parent_dir = File.expand_path('..', dir)
  7. break if dir.empty? || parent_dir == dir
  8. dir = parent_dir
  9. break if File.exist?("#{dir}/project.godot")
  10. end
  11. return dir
  12. }).call
  13. CONFIG_ROOT = "#{$res_root}/.tbl"
  14. def get_options(tool_file)
  15. options = {}
  16. name = File.basename(tool_file, ".rb")
  17. JSON.parse(File.read("#{CONFIG_ROOT}/#{name}.json"))['options'].each do |unit|
  18. key, value = unit['name'], unit['value']
  19. value.gsub!('res:', $res_root) if value.is_a?(String)
  20. options[key] = value
  21. end
  22. return options
  23. end
  24. def convert_case(source)
  25. return source.split('_').collect(&:capitalize).join
  26. end
  27. def ensure_dir(dir)
  28. return if Dir.exist?(dir)
  29. FileUtils.mkdir_p dir
  30. end
  31. def recreate_dir(dir)
  32. FileUtils.rm_rf dir
  33. FileUtils.mkdir_p dir
  34. end