hnix-store-nar-0.1.1.0: src/System/Nix/Nar/Options.hs
{-# LANGUAGE OverloadedStrings #-}
module System.Nix.Nar.Options
( NarOptions(..)
, defaultNarOptions
, caseHackSuffix
) where
import Data.Text (Text)
import qualified System.Info
-- | Options for configuring how NAR files are encoded and decoded.
data NarOptions = NarOptions {
optUseCaseHack :: Bool
-- ^ Whether to enable a case hack to support case-insensitive filesystems.
-- Equivalent to the 'use-case-hack' option in the Nix client.
--
-- The case hack rewrites file names to avoid collisions on case-insensitive file systems, e.g. APFS and HFS+ on macOS.
-- Enabled by default on macOS (Darwin).
}
defaultNarOptions :: NarOptions
defaultNarOptions = NarOptions {
optUseCaseHack = System.Info.os == "darwin"
}
caseHackSuffix :: Text
caseHackSuffix = "~nix~case~hack~"