mirror of https://github.com/voidlizard/hbs2
wip
This commit is contained in:
parent
e405142b8c
commit
d30207f838
|
@ -43,7 +43,7 @@ findFilesBy fp = liftIO do
|
|||
|
||||
findKeyRing :: forall s m . ( MonadUnliftIO m
|
||||
, SerialisedCredentials s
|
||||
, For'HBS2Basic s
|
||||
, ForHBS2Basic s
|
||||
)
|
||||
=> [FilePattern]
|
||||
-> PubKey 'Sign s
|
||||
|
@ -68,7 +68,7 @@ findKeyRing fp kr = do
|
|||
findKeyRingEntries :: forall s m . ( MonadUnliftIO m
|
||||
, SerialisedCredentials s
|
||||
, Hashable (PubKey 'Encrypt s)
|
||||
-- , For'HBS2Basic s
|
||||
-- , ForHBS2Basic s
|
||||
)
|
||||
=> [FilePattern]
|
||||
-> [PubKey 'Encrypt s]
|
||||
|
|
|
@ -23,6 +23,9 @@ newtype HashRef = HashRef { fromHashRef :: Hash HbSync }
|
|||
deriving newtype (Eq,Ord,IsString,Pretty,Hashable,Hashed HbSync)
|
||||
deriving stock (Data,Generic,Show)
|
||||
|
||||
newtype TaggedHashRef t = TaggedHashRef { fromTaggedHashRef :: HashRef }
|
||||
deriving newtype (Eq,Ord,IsString,Pretty,Hashable,Hashed HbSync)
|
||||
deriving stock (Data,Generic,Show)
|
||||
|
||||
instance Pretty (AsBase58 HashRef) where
|
||||
pretty (AsBase58 x) = pretty x
|
||||
|
@ -65,6 +68,7 @@ data SequentialRef =
|
|||
instance Serialise AnnotatedHashRef
|
||||
instance Serialise SequentialRef
|
||||
instance Serialise HashRef
|
||||
instance Serialise (TaggedHashRef e)
|
||||
|
||||
|
||||
type IsRefPubKey s = ( Eq (PubKey 'Sign s)
|
||||
|
|
|
@ -90,7 +90,7 @@ data PeerCredentials s =
|
|||
makeLenses 'KeyringEntry
|
||||
makeLenses 'PeerCredentials
|
||||
|
||||
type For'HBS2Basic s = ( Signatures s
|
||||
type ForHBS2Basic s = ( Signatures s
|
||||
, PrivKey 'Sign s ~ Sign.SecretKey
|
||||
, PubKey 'Sign s ~ Sign.PublicKey
|
||||
, Eq (PubKey 'Encrypt 'HBS2Basic)
|
||||
|
@ -147,7 +147,7 @@ addKeyPair txt cred = do
|
|||
pure $ cred & over peerKeyring (List.nub . (<> [kp]))
|
||||
|
||||
delKeyPair :: forall e m . ( MonadIO m
|
||||
, For'HBS2Basic e
|
||||
, ForHBS2Basic e
|
||||
)
|
||||
=> AsBase58 String -> PeerCredentials e -> m (PeerCredentials e)
|
||||
delKeyPair (AsBase58 pks) cred = do
|
||||
|
@ -157,7 +157,7 @@ delKeyPair (AsBase58 pks) cred = do
|
|||
pure $ cred & set peerKeyring rest
|
||||
|
||||
|
||||
parseCredentials :: forall s . ( -- For'HBS2Basic s
|
||||
parseCredentials :: forall s . ( -- ForHBS2Basic s
|
||||
SerialisedCredentials s
|
||||
)
|
||||
=> AsCredFile ByteString -> Maybe (PeerCredentials s)
|
||||
|
|
|
@ -217,7 +217,7 @@ pSendRepoNotify :: GitPerks m => Parser (GitCLI m ())
|
|||
pSendRepoNotify = do
|
||||
notifyChan <- argument pRefChanId (metavar "CHANNEL-KEY")
|
||||
pure do
|
||||
notice "JOPA"
|
||||
notice "wip"
|
||||
pure ()
|
||||
|
||||
main :: IO ()
|
||||
|
|
|
@ -87,6 +87,14 @@ data RefChanActionRequest =
|
|||
|
||||
instance Serialise RefChanActionRequest
|
||||
|
||||
type DisclosedCredentials e = PeerCredentials (Encryption e)
|
||||
|
||||
data RefChanHeadExt e =
|
||||
RefChanDisclosedCredentials (TaggedHashRef (DisclosedCredentials e))
|
||||
deriving stock (Generic)
|
||||
|
||||
instance SerialisedCredentials (Encryption e) => Serialise (RefChanHeadExt e)
|
||||
|
||||
data RefChanNotify e =
|
||||
Notify (RefChanId e) (SignedBox ByteString (Encryption e)) -- подписано ключом автора
|
||||
-- довольно уместно будет добавить эти команды сюда -
|
||||
|
@ -97,6 +105,7 @@ data RefChanNotify e =
|
|||
|
||||
instance ForRefChans e => Serialise (RefChanNotify e)
|
||||
|
||||
|
||||
newtype instance EventKey e (RefChanNotify e) =
|
||||
RefChanNotifyEventKey (RefChanId e)
|
||||
|
||||
|
@ -117,6 +126,7 @@ instance Expires (EventKey e (RefChanNotify e)) where
|
|||
|
||||
|
||||
type ForRefChans e = ( Serialise (PubKey 'Sign (Encryption e))
|
||||
, Serialise (PrivKey 'Sign (Encryption e))
|
||||
, Pretty (AsBase58 (PubKey 'Sign (Encryption e)))
|
||||
, FromStringMaybe (PubKey 'Sign (Encryption e))
|
||||
, FromStringMaybe (PubKey 'Encrypt (Encryption e))
|
||||
|
@ -261,6 +271,7 @@ instance ForRefChans e => FromStringMaybe (RefChanHeadBlock e) where
|
|||
| (ListVal [SymbolVal "notifier", LitStrVal s] ) <- parsed
|
||||
]
|
||||
|
||||
|
||||
instance (ForRefChans e
|
||||
, Pretty (AsBase58 (PubKey 'Sign (Encryption e)))
|
||||
, Pretty (AsBase58 (PubKey 'Encrypt (Encryption e)))
|
||||
|
@ -284,6 +295,7 @@ instance (ForRefChans e
|
|||
author p = parens ("author" <+> dquotes (pretty (AsBase58 p)))
|
||||
reader p = parens ("reader" <+> dquotes (pretty (AsBase58 p)))
|
||||
notifier p = parens ("notifier" <+> dquotes (pretty (AsBase58 p)))
|
||||
-- disclosed p =
|
||||
|
||||
lstOf f e | null e = mempty
|
||||
| otherwise = vcat (fmap f e) <> line
|
||||
|
|
|
@ -183,7 +183,7 @@ runHash opts _ = do
|
|||
withBinaryFile (hashFp opts) ReadMode $ \h -> do
|
||||
LBS.hGetContents h >>= print . pretty . hashObject @HbSync
|
||||
|
||||
runCat :: forall s . For'HBS2Basic s => CatOpts -> SimpleStorage HbSync -> IO ()
|
||||
runCat :: forall s . ForHBS2Basic s => CatOpts -> SimpleStorage HbSync -> IO ()
|
||||
|
||||
runCat opts ss | catRaw opts == Just True = do
|
||||
|
||||
|
|
Loading…
Reference in New Issue