module AnyCableRailsGenerators::WithOSHelpers
def self.included(base)
def self.included(base) base.class_option :os, type: :string, desc: "Specify the OS for AnyCable-Go server binary (options: #{OS_NAMES.join(", ")})" base.class_option :cpu, type: :string, desc: "Specify the CPU architecturefor AnyCable-Go server binary (options: #{CPU_NAMES.join(", ")})" private :current_cpu, :supported_current_cpu, :supported_current_os end
def cpu_name
def cpu_name options[:cpu] || supported_current_cpu || ask("What is your CPU architecture?", limited_to: CPU_NAMES) end
def current_cpu
def current_cpu case Gem::Platform.local.cpu when "x86_64", "x64" "amd64" when "x86_32", "x86", "i386", "i486", "i686" "i386" when "aarch64", "aarch64_be", "arm64", /armv8/ "arm64" when "arm", /armv7/, /armv6/ "arm" else "unknown" end end
def os_name
def os_name options[:os] || supported_current_os || ask("What is your OS name?", limited_to: OS_NAMES) end
def supported_current_cpu
def supported_current_cpu CPU_NAMES.find(¤t_cpu.method(:==)) end
def supported_current_os
def supported_current_os OS_NAMES.find(&Gem::Platform.local.os.method(:==)) end