mirror of https://github.com/voidlizard/hbs2
wip, code tossing
This commit is contained in:
parent
fd56384f50
commit
4879c1528f
|
@ -370,6 +370,7 @@ updateIndexPeriodially = do
|
||||||
quit :: DashBoardPerks m => m ()
|
quit :: DashBoardPerks m => m ()
|
||||||
quit = liftIO exitSuccess
|
quit = liftIO exitSuccess
|
||||||
|
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
argz <- getArgs
|
argz <- getArgs
|
||||||
|
@ -382,42 +383,69 @@ main = do
|
||||||
|
|
||||||
-- TODO: write-man-entries
|
-- TODO: write-man-entries
|
||||||
|
|
||||||
entry $ bindMatch "--help" $ nil_ $ \case
|
myHelpEntry
|
||||||
HelpEntryBound what -> do
|
fixmeAllowEntry
|
||||||
helpEntry what
|
fixmeAllowDropEntry
|
||||||
quit
|
webEntry
|
||||||
|
portEntry
|
||||||
[StringLike s] -> helpList False (Just s) >> quit
|
developAssetsEntry
|
||||||
|
|
||||||
_ -> helpList False Nothing >> quit
|
|
||||||
|
|
||||||
entry $ bindMatch "develop-assets" $ nil_ \case
|
|
||||||
[StringLike s] -> do
|
|
||||||
pure ()
|
|
||||||
|
|
||||||
_ -> none
|
|
||||||
|
|
||||||
brief "allows fixme for given reflog" $
|
|
||||||
args [arg "public-key" "reflog"] $
|
|
||||||
examples [qc|
|
|
||||||
fixme-allow BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP
|
|
||||||
|]
|
|
||||||
$ entry $ bindMatch "fixme-allow" $ nil_ \case
|
|
||||||
[SignPubKeyLike what] -> do
|
|
||||||
lift $ insertFixmeAllowed (RepoRefLog (RefLogKey what))
|
|
||||||
|
|
||||||
_ -> throwIO $ BadFormException @C nil
|
|
||||||
|
|
||||||
entry $ bindMatch "port" $ nil_ \case
|
|
||||||
[LitIntVal n] -> do
|
|
||||||
tp <- lift $ asks _dashBoardHttpPort
|
|
||||||
atomically $ writeTVar tp (Just (fromIntegral n))
|
|
||||||
|
|
||||||
_ -> throwIO $ BadFormException @C nil
|
|
||||||
|
|
||||||
entry $ bindMatch "web" $ nil_ $ const do
|
|
||||||
lift runScotty
|
|
||||||
|
|
||||||
void $ runDashBoardM $ run dict (conf <> cli)
|
void $ runDashBoardM $ run dict (conf <> cli)
|
||||||
|
|
||||||
|
where
|
||||||
|
|
||||||
|
myHelpEntry = do
|
||||||
|
entry $ bindMatch "--help" $ nil_ $ \case
|
||||||
|
HelpEntryBound what -> do
|
||||||
|
helpEntry what
|
||||||
|
quit
|
||||||
|
|
||||||
|
[StringLike s] -> helpList False (Just s) >> quit
|
||||||
|
|
||||||
|
_ -> helpList False Nothing >> quit
|
||||||
|
|
||||||
|
fixmeAllowEntry = do
|
||||||
|
brief "allows fixme for given reflog" $
|
||||||
|
args [arg "public-key" "reflog"] $
|
||||||
|
examples [qc|
|
||||||
|
fixme-allow BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP
|
||||||
|
|]
|
||||||
|
$ entry $ bindMatch "fixme-allow" $ nil_ \case
|
||||||
|
[SignPubKeyLike what] -> do
|
||||||
|
lift $ insertFixmeAllowed (RepoRefLog (RefLogKey what))
|
||||||
|
|
||||||
|
_ -> throwIO $ BadFormException @C nil
|
||||||
|
|
||||||
|
|
||||||
|
fixmeAllowDropEntry = do
|
||||||
|
brief "drop all allowed fixme records" $
|
||||||
|
examples [qc|
|
||||||
|
fixme-allow:drop
|
||||||
|
|]
|
||||||
|
$ entry $ bindMatch "fixme-allow:drop" $ nil_ \case
|
||||||
|
[] -> do
|
||||||
|
lift $ deleteFixmeAllowed
|
||||||
|
|
||||||
|
_ -> throwIO $ BadFormException @C nil
|
||||||
|
|
||||||
|
webEntry = do
|
||||||
|
brief "run web interface" $
|
||||||
|
entry $ bindMatch "web" $ nil_ $ const do
|
||||||
|
lift runScotty
|
||||||
|
|
||||||
|
portEntry = do
|
||||||
|
brief "set http port for web interface" $
|
||||||
|
entry $ bindMatch "port" $ nil_ \case
|
||||||
|
[LitIntVal n] -> do
|
||||||
|
tp <- lift $ asks _dashBoardHttpPort
|
||||||
|
atomically $ writeTVar tp (Just (fromIntegral n))
|
||||||
|
|
||||||
|
_ -> throwIO $ BadFormException @C nil
|
||||||
|
|
||||||
|
developAssetsEntry = do
|
||||||
|
entry $ bindMatch "develop-assets" $ nil_ \case
|
||||||
|
[StringLike s] -> do
|
||||||
|
pure ()
|
||||||
|
|
||||||
|
_ -> none
|
||||||
|
|
||||||
|
|
|
@ -942,6 +942,22 @@ insertFixmeAllowed reflog = do
|
||||||
insertOWKV (fromString o) mzero "$type" "fixme-allowed"
|
insertOWKV (fromString o) mzero "$type" "fixme-allowed"
|
||||||
insertOWKV (fromString o) mzero "value" v
|
insertOWKV (fromString o) mzero "value" v
|
||||||
|
|
||||||
|
deleteFixmeAllowed :: ( DashBoardPerks m
|
||||||
|
, MonadReader DashBoardEnv m
|
||||||
|
)
|
||||||
|
=> m ()
|
||||||
|
deleteFixmeAllowed = do
|
||||||
|
|
||||||
|
let sql = [qc|
|
||||||
|
with
|
||||||
|
s1 as (
|
||||||
|
select o from object where k = '$type' and json_extract(v, '$') = 'fixme-allowed'
|
||||||
|
)
|
||||||
|
delete from object where o in (select o from s1)
|
||||||
|
|]
|
||||||
|
|
||||||
|
withState $ S.insert_ sql
|
||||||
|
|
||||||
checkFixmeAllowed :: (DashBoardPerks m, MonadReader DashBoardEnv m)
|
checkFixmeAllowed :: (DashBoardPerks m, MonadReader DashBoardEnv m)
|
||||||
=> RepoRefLog
|
=> RepoRefLog
|
||||||
-> m Bool
|
-> m Bool
|
||||||
|
|
Loading…
Reference in New Issue