packages feed

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 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