mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-17 05:32:55 +08:00
bc735bbe22
- unified makefile project for the whole repos - new separate project for tests
77 lines
1.4 KiB
Ruby
77 lines
1.4 KiB
Ruby
require 'rbconfig'
|
|
|
|
class SystemWrapper
|
|
|
|
# static method for use in defaults
|
|
def self.windows?
|
|
return ((RbConfig::CONFIG['host_os'] =~ /mswin|mingw/) ? true : false) if defined?(RbConfig)
|
|
return ((Config::CONFIG['host_os'] =~ /mswin|mingw/) ? true : false)
|
|
end
|
|
|
|
# class method so as to be mockable for tests
|
|
def windows?
|
|
return SystemWrapper.windows?
|
|
end
|
|
|
|
def module_eval(string)
|
|
return Object.module_eval("\"" + string + "\"")
|
|
end
|
|
|
|
def eval(string)
|
|
return eval(string)
|
|
end
|
|
|
|
def search_paths
|
|
return ENV['PATH'].split(File::PATH_SEPARATOR)
|
|
end
|
|
|
|
def cmdline_args
|
|
return ARGV
|
|
end
|
|
|
|
def env_set(name, value)
|
|
ENV[name] = value
|
|
end
|
|
|
|
def env_get(name)
|
|
return ENV[name]
|
|
end
|
|
|
|
def time_now
|
|
return Time.now.asctime
|
|
end
|
|
|
|
def shell_backticks(command)
|
|
return {
|
|
:output => `#{command}`.freeze,
|
|
:exit_code => ($?.exitstatus).freeze
|
|
}
|
|
end
|
|
|
|
def shell_system(command)
|
|
system( command )
|
|
return {
|
|
:output => ''.freeze,
|
|
:exit_code => ($?.exitstatus).freeze
|
|
}
|
|
end
|
|
|
|
def add_load_path(path)
|
|
$LOAD_PATH.unshift(path)
|
|
end
|
|
|
|
def require_file(path)
|
|
require(path)
|
|
end
|
|
|
|
def ruby_success
|
|
return ($!.nil? || $!.is_a?(SystemExit) && $!.success?)
|
|
end
|
|
|
|
def constants_include?(item)
|
|
# forcing to strings provides consistency across Ruby versions
|
|
return Object.constants.map{|constant| constant.to_s}.include?(item.to_s)
|
|
end
|
|
|
|
end
|