diff --git a/hbs2-cli/lib/HBS2/CLI/Run/Mailbox.hs b/hbs2-cli/lib/HBS2/CLI/Run/Mailbox.hs index 77f6d64e..81f010a8 100644 --- a/hbs2-cli/lib/HBS2/CLI/Run/Mailbox.hs +++ b/hbs2-cli/lib/HBS2/CLI/Run/Mailbox.hs @@ -6,6 +6,7 @@ import HBS2.CLI.Run.Internal import HBS2.Net.Auth.GroupKeySymm import HBS2.Peer.Proto.Mailbox +import HBS2.Peer.Proto.Mailbox.Policy.Basic import HBS2.Data.Types.Refs import HBS2.Hash @@ -102,3 +103,19 @@ mailboxEntries = do _ -> throwIO (BadFormException @c nil) + entry $ bindMatch "hbs2:mailbox:policy:basic:create:file" $ nil_ \case + [StringLike fn] -> lift do + + what <- liftIO (readFile fn) + <&> parseTop + >>= either (error.show) pure + >>= parseBasicPolicy + >>= orThrowUser "invalid policy" + + let s = getAsSyntax @C what + + liftIO $ print $ vcat (fmap pretty s) + + _ -> throwIO (BadFormException @c nil) + + diff --git a/hbs2-peer/lib/HBS2/Peer/Proto/Mailbox/Policy/Basic.hs b/hbs2-peer/lib/HBS2/Peer/Proto/Mailbox/Policy/Basic.hs index 8e0796ec..7ba30e54 100644 --- a/hbs2-peer/lib/HBS2/Peer/Proto/Mailbox/Policy/Basic.hs +++ b/hbs2-peer/lib/HBS2/Peer/Proto/Mailbox/Policy/Basic.hs @@ -29,10 +29,10 @@ data BasicPolicyAction = data BasicPolicy s = BasicPolicy - { bpDefaulPeerAction :: BasicPolicyAction - , bpDefaultSenderAction :: BasicPolicyAction - , bpPeers :: HashMap (PubKey 'Sign s) BasicPolicyAction - , bpSenders :: HashMap (Sender s) BasicPolicyAction + { bpDefaultPeerAction :: BasicPolicyAction + , bpDefaultSenderAction :: BasicPolicyAction + , bpPeers :: HashMap (PubKey 'Sign s) BasicPolicyAction + , bpSenders :: HashMap (Sender s) BasicPolicyAction } deriving stock (Generic) @@ -54,8 +54,8 @@ getAsSyntax BasicPolicy{..} = , defSenderAction ] <> peerActions <> senderActions where - defPeerAction = mkList [mkSym "peer", action bpDefaulPeerAction, mkSym "all"] - defSenderAction = mkList [mkSym "sender", action bpDefaulPeerAction, mkSym "all"] + defPeerAction = mkList [mkSym "peer", action bpDefaultPeerAction, mkSym "all"] + defSenderAction = mkList [mkSym "sender", action bpDefaultSenderAction, mkSym "all"] peerActions = [ mkList [mkSym "peer", action a, mkSym (show $ pretty (AsBase58 who))] | (who, a) <- HM.toList bpPeers ]