getCpuArchitecture function

CpuArchitecture getCpuArchitecture()

Implementation

CpuArchitecture getCpuArchitecture() {
  String cpu;
  if (Platform.isWindows) {
    cpu = Platform.environment['PROCESSOR_ARCHITECTURE'] ?? 'unknown';
  } else {
    var info = Process.runSync('uname', ['-m']);
    cpu = info.stdout.toString().replaceAll('\n', '').trim();
  }
  switch (cpu.toLowerCase()) {
    case 'x86' || 'i386' || '386' || 'i686' || 'x32' || 'amd32' || 'ia32':
      return CpuArchitecture.amd32;
    case 'x64' || 'x86_64' || 'x86-64' || 'amd64':
      return CpuArchitecture.amd64;
    case 'arm' || 'armv7l':
      return CpuArchitecture.arm32;
    case 'arm64' || 'arm64e' || 'aarch64':
      return CpuArchitecture.arm64;
    case "riscv32":
      return CpuArchitecture.riscv32;
    case "riscv64":
      return CpuArchitecture.riscv64;
  }
  throw UnimplementedError('Cpu architecture $cpu is not supported by Dart.');
}