package com.airlock.iam.system.platform;

import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Locale;
import java.util.Objects;

public enum IamArchitecture {
   X64,
   ARM64;

   public static IamArchitecture currentArchitecture() {
      String name = getNameFromResource();
      return valueOf(name);
   }

   private static String getNameFromResource() {
      try (InputStream inputStream = IamArchitecture.class.getResourceAsStream("architecture")) {
         return new String(Objects.requireNonNull(inputStream).readAllBytes(), StandardCharsets.UTF_8);
      } catch (IOException e) {
         throw new IllegalStateException(e);
      }
   }

   public String asString() {
      return this.name().toLowerCase(Locale.ROOT);
   }
}
