| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
System.Nix.Internal.StorePath
Description
Synopsis
- data StorePath = StorePath {}
- newtype StorePathName = StorePathName {}
- type StorePathHashAlgo = 'Truncated 20 'SHA256
- type StorePathSet = HashSet StorePath
- data ContentAddressableAddress
- = Text !(Digest 'SHA256)
- | Fixed !NarHashMode !SomeNamedDigest
- data NarHashMode
- makeStorePathName :: Text -> Either String StorePathName
- reasonInvalid :: Text -> String
- validStorePathName :: Text -> Bool
- validStorePathNameChar :: Char -> Bool
- type RawFilePath = ByteString
- storePathToRawFilePath :: StorePath -> RawFilePath
- storePathToFilePath :: StorePath -> FilePath
- storePathToText :: StorePath -> Text
- storePathToNarInfo :: StorePath -> ByteString
- parsePath :: FilePath -> ByteString -> Either String StorePath
- pathParser :: FilePath -> Parser StorePath
Documentation
A path in a Nix store.
From the Nix thesis: A store path is the full path of a store object. It has the following anatomy: storeDir/hashPart-name.
storeDir: The root of the Nix store (e.g. /nix/store).
See the StoreDir haddocks for details on why we represent this at
the type level.
Constructors
| StorePath | |
Fields
| |
Instances
| Eq StorePath Source # | |
| Ord StorePath Source # | |
| Show StorePath Source # | |
| Hashable StorePath Source # | |
Defined in System.Nix.Internal.StorePath | |
newtype StorePathName Source #
The name portion of a Nix path.
unStorePathName must only contain a-zA-Z0-9+._?=-, can't start
with a -, and must have at least one character (i.e. it must match
storePathNameRegex).
Constructors
| StorePathName | |
Fields
| |
Instances
| Eq StorePathName Source # | |
Defined in System.Nix.Internal.StorePath Methods (==) :: StorePathName -> StorePathName -> Bool # (/=) :: StorePathName -> StorePathName -> Bool # | |
| Ord StorePathName Source # | |
Defined in System.Nix.Internal.StorePath Methods compare :: StorePathName -> StorePathName -> Ordering # (<) :: StorePathName -> StorePathName -> Bool # (<=) :: StorePathName -> StorePathName -> Bool # (>) :: StorePathName -> StorePathName -> Bool # (>=) :: StorePathName -> StorePathName -> Bool # max :: StorePathName -> StorePathName -> StorePathName # min :: StorePathName -> StorePathName -> StorePathName # | |
| Hashable StorePathName Source # | |
Defined in System.Nix.Internal.StorePath | |
type StorePathHashAlgo = 'Truncated 20 'SHA256 Source #
The hash algorithm used for store path hashes.
data ContentAddressableAddress Source #
An address for a content-addressable store path, i.e. one whose store path hash is purely a function of its contents (as opposed to paths that are derivation outputs, whose hashes are a function of the contents of the derivation file instead).
For backwards-compatibility reasons, the same information is encodable in multiple ways, depending on the method used to add the path to the store. These unfortunately result in separate store paths.
Constructors
| Text !(Digest 'SHA256) | The path is a plain file added via makeTextPath or addTextToStore. It is addressed according to a sha256sum of the file contents. |
| Fixed !NarHashMode !SomeNamedDigest | The path was added to the store via makeFixedOutputPath or
addToStore. It is addressed according to some hash algorithm
applied to the nar serialization via some |
data NarHashMode Source #
Schemes for hashing a nix archive.
For backwards-compatibility reasons, there are two different modes
here, even though Recursive should be able to cover both.
Constructors
| RegularFile | Require the nar to represent a non-executable regular file. |
| Recursive | Hash an arbitrary nar, including a non-executable regular file if so desired. |
reasonInvalid :: Text -> String Source #
validStorePathName :: Text -> Bool Source #
validStorePathNameChar :: Char -> Bool Source #
type RawFilePath = ByteString Source #
Copied from RawFilePath in the unix package, duplicated here
to avoid the dependency.
storePathToRawFilePath :: StorePath -> RawFilePath Source #
Render a StorePath as a RawFilePath.
storePathToNarInfo :: StorePath -> ByteString Source #
Build narinfo suffix from StorePath which
can be used to query binary caches.
parsePath :: FilePath -> ByteString -> Either String StorePath Source #
Parse StorePath from ByteString, checking
that store directory matches expectedRoot.