content: {-# LANGUAGE OverloadedStrings #-}
  
  -----------------------------------------------------------------------------
  
  -----------------------------------------------------------------------------
  
  {- |
   Module      :  OpenTelemetry.Resource.OperatingSystem.Detector
   Copyright   :  (c) Ian Duncan, 2021
   License     :  BSD-3
   Maintainer  :  Ian Duncan
   Stability   :  experimental
   Portability :  non-portable (GHC extensions)
  
   Detect information about the current system's OS.
  -}
  module OpenTelemetry.Resource.OperatingSystem.Detector (
    detectOperatingSystem,
  ) where
  
  import qualified Data.Text as T
  import OpenTelemetry.Resource.OperatingSystem
  import System.Info (os)
  
  
  {- | Retrieve any infomration able to be detected about the current operation system.
  
   Currently only supports 'osType' detection, but PRs are welcome to support additional
   details.
  
   @since 0.0.1.0
  -}
  detectOperatingSystem :: IO OperatingSystem
  detectOperatingSystem =
    pure $
      OperatingSystem
        { osType =
            if os == "mingw32"
              then "windows"
              else T.pack os
        , osDescription = Nothing
        , osName = Nothing
        , osVersion = Nothing
        }
  