From 6cd3af100350dc196b2e7e0e8793acc3776b46d9 Mon Sep 17 00:00:00 2001 From: voidlizard Date: Sat, 8 Feb 2025 11:26:08 +0300 Subject: [PATCH] wip --- hbs2-cli/lib/HBS2/CLI/Run/Internal.hs | 14 ++++++++++++++ hbs2-core/lib/HBS2/Actors/Peer.hs | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/hbs2-cli/lib/HBS2/CLI/Run/Internal.hs b/hbs2-cli/lib/HBS2/CLI/Run/Internal.hs index 6ee54b8e..e68463f9 100644 --- a/hbs2-cli/lib/HBS2/CLI/Run/Internal.hs +++ b/hbs2-cli/lib/HBS2/CLI/Run/Internal.hs @@ -31,6 +31,7 @@ import Data.Config.Suckless.Script hiding (internalEntries) import Control.Monad.Trans.Maybe import Control.Monad.Trans.Cont import Data.ByteString.Char8 qualified as BS8 +import Data.ByteString.Lazy qualified as LBS import Data.Text qualified as Text import Lens.Micro.Platform @@ -170,6 +171,19 @@ internalEntries = do -- TODO: re-implement-all-on-top-of-opaque + entry $ bindMatch "hbs2:hash" $ \syn -> do + i <- case syn of + [ListVal (StringLikeList xs)] -> pure xs + StringLikeList xs -> pure xs + e -> throwIO (BadFormException @c (mkList e)) + + r <- forM i $ \f -> do + liftIO (LBS.readFile f) + <&> hashObject @HbSync + <&> mkSym @c . show . pretty + + pure $ mkList r + -- TODO: move-somewhere entry $ bindMatch "rm" $ nil_ \case [ StringLike p ] -> rm p diff --git a/hbs2-core/lib/HBS2/Actors/Peer.hs b/hbs2-core/lib/HBS2/Actors/Peer.hs index 5b65cb6d..885a3891 100644 --- a/hbs2-core/lib/HBS2/Actors/Peer.hs +++ b/hbs2-core/lib/HBS2/Actors/Peer.hs @@ -29,7 +29,8 @@ import Control.Monad.Trans.Maybe import Control.Monad.Trans.Cont -- import Control.Concurrent.Async import Control.Monad.Reader -import Control.Monad.Writer.CPS qualified as CPS +-- import Control.Monad.Writer.CPS qualified as CPS +import Control.Monad.Writer qualified as CPS import Data.ByteString.Lazy (ByteString) import Data.Cache (Cache) import Data.Cache qualified as Cache