package ppx_system

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file system.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
type t = Darwin | FreeBSD | NetBSD | OpenBSD | Unix | Win32

let to_string = function
  | Darwin -> "Darwin"
  | FreeBSD -> "FreeBSD"
  | NetBSD -> "NetBSD"
  | OpenBSD -> "OpenBSD"
  | Unix -> "Unix"
  | Win32 -> "Win32"

let get () =
  if Sys.win32 then Ok Win32
  else
    match Uname.sysname () with
    | "Darwin" -> Ok Darwin
    | "FreeBSD" -> Ok FreeBSD
    | "Linux" -> Ok Unix
    | "NetBSD" -> Ok NetBSD
    | "OpenBSD" -> Ok OpenBSD
    | sys_name -> Error sys_name