44 lines
1.9 KiB
Ruby
44 lines
1.9 KiB
Ruby
# this file expects to be required from within Homebrew's Ruby environment
|
|
|
|
# Force UTF-8 encodings.
|
|
# * This is not very nice, but we have no control over how Homebrew was
|
|
# invoked, nor with which Ruby interpreter.
|
|
# * The correct way would be to invoke Ruby with "ruby -EUTF-8:UTF-8".
|
|
# * The Homebrew project prefers to have heterogeneous encodings among
|
|
# its string values.
|
|
# * This logic may conceivably cause problems with code that calls back
|
|
# into Homebrew, such as implicit Tapping and Formula dependencies.
|
|
# * ARGV may not be the only special variable which needs treatment here.
|
|
if defined?(Encoding)
|
|
# simulate "ruby -EUTF-8:UTF-8", but safe for Ruby 1.8,
|
|
# as this block will not be entered.
|
|
Encoding.default_internal = Encoding::UTF_8
|
|
Encoding.default_external = Encoding::UTF_8
|
|
# encode ARGV
|
|
utf8_argv = ARGV.map do |arg|
|
|
if arg.encoding == Encoding::UTF_8 or
|
|
arg.encoding == Encoding::US_ASCII or # these two may happen
|
|
arg.encoding == Encoding::ASCII_8BIT # when LANG is unset
|
|
arg.dup.force_encoding('UTF-8')
|
|
else
|
|
arg.dup.encode('UTF-8')
|
|
end
|
|
end
|
|
ARGV.clear
|
|
ARGV.push *utf8_argv
|
|
# encode Homebrew objects which we use within Homebrew-cask
|
|
HOMEBREW_BREW_FILE = HOMEBREW_BREW_FILE.dup.force_encoding('UTF-8')
|
|
HOMEBREW_VERSION = HOMEBREW_VERSION.dup.force_encoding('UTF-8')
|
|
HOMEBREW_CACHE = Pathname.new(HOMEBREW_CACHE.to_s.force_encoding('UTF-8'))
|
|
HOMEBREW_CELLAR = Pathname.new(HOMEBREW_CELLAR.to_s.force_encoding('UTF-8'))
|
|
HOMEBREW_LIBRARY = Pathname.new(HOMEBREW_LIBRARY.to_s.force_encoding('UTF-8'))
|
|
HOMEBREW_PREFIX = Pathname.new(HOMEBREW_PREFIX.to_s.force_encoding('UTF-8'))
|
|
HOMEBREW_REPOSITORY = Pathname.new(HOMEBREW_REPOSITORY.to_s.force_encoding('UTF-8'))
|
|
end
|
|
|
|
$LOAD_PATH.unshift(File.expand_path('../../lib', Pathname.new(__FILE__).realpath))
|
|
require 'cask'
|
|
|
|
Cask::CLI.process(ARGV)
|
|
exit 0
|
|
|