hnix-store-remote 0.3.0.0 → 0.4.0.0
raw patch · 7 files changed
+29/−23 lines, 7 filesdep ~hnix-store-core
Dependency ranges changed: hnix-store-core
Files
- ChangeLog.md +8/−0
- README.md +4/−3
- hnix-store-remote.cabal +2/−2
- src/System/Nix/Store/Remote.hs +3/−7
- src/System/Nix/Store/Remote/Builders.hs +5/−2
- src/System/Nix/Store/Remote/Parsers.hs +4/−4
- src/System/Nix/Store/Remote/Util.hs +3/−5
ChangeLog.md view
@@ -1,5 +1,13 @@ # Revision history for hnix-store-remote +## [next](https://github.com/haskell-nix/hnix-store/compare/0.4.0.0...master) 2021-MM-DD++* No changes yet++## [0.4.0.0](https://github.com/haskell-nix/hnix-store/compare/0.3.0.0...0.4.0.0) 2020-12-30++* `hnix-store-core` compatibility+ ## 0.3.0.0 -- 2020-11-29 * Restored most store API functions except `addToStoreNar`
README.md view
@@ -1,8 +1,9 @@-hnix-store-remote-=================+# hnix-store-remote -Nix worker protocol implementation for interacting with remote Nix store+[Nix] worker protocol implementation for interacting with remote Nix store via `nix-daemon`.++[Nix]: https://nixos.org/nix ## API
hnix-store-remote.cabal view
@@ -1,5 +1,5 @@ name: hnix-store-remote-version: 0.3.0.0+version: 0.4.0.0 synopsis: Remote hnix store description: Implementation of the nix store using the daemon protocol. homepage: https://github.com/haskell-nix/hnix-store@@ -45,7 +45,7 @@ , unordered-containers , filepath , time- , hnix-store-core+ , hnix-store-core >= 0.4 && <0.5 , vector hs-source-dirs: src default-language: Haskell2010
src/System/Nix/Store/Remote.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE AllowAmbiguousTypes #-}-{-# LANGUAGE DataKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-}@@ -43,22 +42,19 @@ import Nix.Derivation (Derivation) import System.Nix.Build (BuildMode, BuildResult)-import System.Nix.Hash (Digest, NamedAlgo, ValidAlgo, SomeNamedDigest(..))+import System.Nix.Hash (Digest, NamedAlgo, ValidAlgo, SomeNamedDigest(..), BaseEncoding(Base32)) import System.Nix.StorePath (StorePath, StorePathName, StorePathSet, StorePathHashAlgo) import System.Nix.StorePathMetadata (StorePathMetadata(..), StorePathTrust(..)) -import qualified Control.Monad.IO.Class import qualified Data.Binary.Put import qualified Data.ByteString.Lazy import qualified Data.Map.Strict import qualified Data.Set import qualified Data.Text.Encoding-import qualified Data.Text.Lazy import qualified System.Nix.Nar import qualified System.Nix.Hash import qualified System.Nix.StorePath-import qualified System.Nix.Store.Remote.Builders import qualified System.Nix.Store.Remote.Parsers import System.Nix.Store.Remote.Binary@@ -222,7 +218,7 @@ deriverPath <- sockGetPathMay narHashText <- Data.Text.Encoding.decodeUtf8 <$> sockGetStr- let narHash = case System.Nix.Hash.decodeBase32 @'System.Nix.Hash.SHA256 narHashText of+ let narHash = case System.Nix.Hash.decodeBase @'System.Nix.Hash.SHA256 Base32 narHashText of Left e -> error e Right x -> SomeDigest x @@ -278,7 +274,7 @@ putByteStringLen $ Data.ByteString.Lazy.fromStrict $ Data.Text.Encoding.encodeUtf8- $ System.Nix.Hash.encodeBase32 storePathHash+ $ System.Nix.Hash.encodeInBase Base32 storePathHash sockGetPath queryMissing :: StorePathSet
src/System/Nix/Store/Remote/Builders.hs view
@@ -9,7 +9,10 @@ ) where import Data.Text.Lazy (Text)-import System.Nix.Hash (Digest, SomeNamedDigest(SomeDigest))+import System.Nix.Hash ( Digest+ , SomeNamedDigest(SomeDigest)+ , BaseEncoding(Base32)+ ) import System.Nix.StorePath (ContentAddressableAddress(..)) import Data.Text.Lazy.Builder (Builder)@@ -39,4 +42,4 @@ digestBuilder :: Digest a -> Builder digestBuilder = Data.Text.Lazy.Builder.fromText- . System.Nix.Hash.encodeBase32+ . System.Nix.Hash.encodeInBase Base32
src/System/Nix/Store/Remote/Parsers.hs view
@@ -13,7 +13,7 @@ import Control.Applicative ( (<|>) ) import Data.Attoparsec.ByteString.Char8 import Data.ByteString.Char8-import qualified Data.Text+import Data.Text (Text) import Data.Text.Encoding ( decodeUtf8 ) import System.Nix.Hash import System.Nix.StorePath ( ContentAddressableAddress(..)@@ -34,7 +34,7 @@ caText :: Parser ContentAddressableAddress caText = do _ <- "text:sha256:"- digest <- decodeBase32 @'SHA256 <$> parseHash+ digest <- decodeBase @'SHA256 Base32 <$> parseHash either fail return $ Text <$> digest -- | Parser for @fixed:<r?>:<ht>:<h>@@@ -48,8 +48,8 @@ parseTypedDigest :: Parser (Either String SomeNamedDigest) parseTypedDigest = mkNamedDigest <$> parseHashType <*> parseHash -parseHashType :: Parser Data.Text.Text+parseHashType :: Parser Text parseHashType = decodeUtf8 <$> ("sha256" <|> "sha512" <|> "sha1" <|> "md5") <* (":" <|> "-") -parseHash :: Parser Data.Text.Text+parseHash :: Parser Text parseHash = decodeUtf8 <$> takeWhile1 (/= ':')
src/System/Nix/Store/Remote/Util.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TypeApplications #-} {-# LANGUAGE RecordWildCards #-} module System.Nix.Store.Remote.Util where @@ -10,7 +9,6 @@ import Data.Binary.Get import Data.Binary.Put import Data.Text (Text)-import qualified Data.Text as T import qualified Data.Text.Encoding as T import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy.Encoding as TL@@ -49,12 +47,12 @@ where sockGet8 :: MonadStore (Maybe BSC.ByteString) sockGet8 = do- soc <- storeSocket <$> ask+ soc <- asks storeSocket liftIO $ Just <$> recv soc 8 sockPut :: Put -> MonadStore () sockPut p = do- soc <- storeSocket <$> ask+ soc <- asks storeSocket liftIO $ sendAll soc $ BSL.toStrict $ runPut p sockGet :: Get a -> MonadStore a@@ -109,7 +107,7 @@ putText = putByteStringLen . textToBSL putTexts :: [Text] -> Put-putTexts = putByteStrings . (map textToBSL)+putTexts = putByteStrings . map textToBSL getPath :: FilePath -> Get (Either String StorePath) getPath sd = parsePath sd <$> getByteStringLen