mirror of https://github.com/voidlizard/hbs2
wip
This commit is contained in:
parent
9af541b3fc
commit
a79aa0030d
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -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 ]
|
||||
|
|
Loading…
Reference in New Issue