mirror of
https://github.com/urbit/shrub.git
synced 2024-12-22 10:21:31 +03:00
80 lines
1.7 KiB
Haskell
80 lines
1.7 KiB
Haskell
module Main where
|
|
|
|
import ClassyPrelude
|
|
import Vere.Pier.Types
|
|
|
|
import Data.Noun.Jam ()
|
|
|
|
import qualified Vere.Log as Log
|
|
import qualified Vere.Persist as Persist
|
|
import qualified Vere.Pier as Pier
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
main :: IO ()
|
|
main = do
|
|
(s,l,e,m) <- Pier.resume "/home/benjamin/r/urbit/zod/"
|
|
|
|
putStrLn "Resumed!"
|
|
|
|
pure ()
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
tryCopyLog :: IO ()
|
|
tryCopyLog = do
|
|
let logPath = "/Users/erg/src/urbit/zod/.urb/falselog/"
|
|
falselogPath = "/Users/erg/src/urbit/zod/.urb/falselog2/"
|
|
|
|
----------------------------------------
|
|
|
|
persistQ <- newTQueueIO
|
|
releaseQ <- newTQueueIO
|
|
log <- Log.open logPath
|
|
persist <- Persist.start log persistQ (writeTQueue releaseQ)
|
|
ident <- Log.readIdent log
|
|
|
|
----------------------------------------
|
|
|
|
lastEv <- Log.latestEventNumber log
|
|
events <- Log.readEvents log 1 3142
|
|
|
|
----------------------------------------
|
|
|
|
print ident
|
|
print lastEv
|
|
print (length events)
|
|
|
|
----------------------------------------
|
|
|
|
persistQ2 <- newTQueueIO
|
|
releaseQ2 <- newTQueueIO
|
|
log2 <- Log.open falselogPath
|
|
persist2 <- Persist.start log2 persistQ2 (writeTQueue releaseQ2)
|
|
|
|
----------------------------------------
|
|
|
|
Log.writeIdent log2 ident
|
|
|
|
let writs = events <&> \(id, a) ->
|
|
Writ id Nothing (Jam a) []
|
|
|
|
----------------------------------------
|
|
|
|
print "About to write"
|
|
|
|
for_ writs $ \w ->
|
|
atomically (writeTQueue persistQ2 w)
|
|
|
|
----------------------------------------
|
|
|
|
print "About to wait"
|
|
|
|
replicateM_ 100 $ do
|
|
atomically $ readTQueue releaseQ2
|
|
|
|
----------------------------------------
|
|
|
|
print "Done"
|