mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-12-23 11:27:50 +00:00
62 lines
1.2 KiB
Ruby
62 lines
1.2 KiB
Ruby
$message_mutex = Mutex.new
|
|
def show_message message
|
|
$message_mutex.lock
|
|
puts message
|
|
$message_mutex.unlock
|
|
end
|
|
|
|
def error_and_exit text, exit_code = 2
|
|
show_message text
|
|
exit exit_code
|
|
end
|
|
|
|
def constantize camel_cased_word
|
|
names = camel_cased_word.split('::')
|
|
names.shift if names.empty? || names.first.empty?
|
|
|
|
constant = Object
|
|
names.each do |name|
|
|
constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
|
|
end
|
|
constant
|
|
end
|
|
|
|
def file_name_to_class_name file_name
|
|
"T_" + file_name.gsub(/^test-/, "").gsub(/\.rb$/, "")
|
|
end
|
|
|
|
def class_name_to_file_name class_name
|
|
class_name.gsub(/^T_/, "test-") + ".rb"
|
|
end
|
|
|
|
class Array
|
|
def extract_options!
|
|
last.is_a?(::Hash) ? pop : {}
|
|
end
|
|
end
|
|
|
|
class String
|
|
def md5
|
|
Digest::MD5.hexdigest self
|
|
end
|
|
end
|
|
|
|
def md5 name
|
|
case
|
|
when $is_macos then `/sbin/md5 #{name}`.chomp.gsub(/.*=\s*/, "")
|
|
else `md5sum #{name}`.chomp.gsub(/\s+.*/, "")
|
|
end
|
|
end
|
|
|
|
def run_bash command
|
|
return system command if !$is_windows
|
|
|
|
cmd_file = Tempfile.new
|
|
cmd_file.write command
|
|
cmd_file.close
|
|
|
|
FileUtils.chmod 0700, cmd_file.path
|
|
|
|
system "bash -c #{cmd_file.path}"
|
|
end
|