Compare commits

...

10 Commits
v0.0.2 ... main

Author SHA1 Message Date
Paul Brinkmeier
cf583f5ff6 Change showpdf to showpdfjs
All checks were successful
deliver / deliver (push) Successful in 6m56s
2025-10-19 11:05:15 +02:00
d3dbb6e673 Clean up after dbmate
All checks were successful
deliver / deliver (push) Successful in 1m51s
2025-10-07 18:09:29 +02:00
Paul Brinkmeier
851b3a6076 Use mktemp for dbmate invocation 2025-10-07 17:33:07 +02:00
Paul Brinkmeier
dbc3103980 Don't use /tmp...
All checks were successful
deliver / deliver (push) Successful in 1m48s
2025-10-07 17:07:12 +02:00
Paul Brinkmeier
2dacd4f747 Use /tmp for running dbmate
All checks were successful
deliver / deliver (push) Successful in 2m6s
2025-10-07 16:48:53 +02:00
94ede9a168 Use SIGINT as container StopSignal
Some checks failed
deliver / deliver (push) Failing after 20s
2025-10-07 13:47:12 +02:00
Paul Brinkmeier
c38574e005 Add exec in entrypoint
All checks were successful
deliver / deliver (push) Successful in 1m40s
2025-10-07 13:26:46 +02:00
Paul Brinkmeier
700d53fbb0 Update todo list 2025-10-07 13:09:24 +02:00
Paul Brinkmeier
c5c11ed181 Don't buffer stdout
All checks were successful
deliver / deliver (push) Successful in 1m36s
2025-10-07 12:53:14 +02:00
36c9b880a7 Merge pull request 'Add entrypoint script and cacerts to image' (#2) from image-entry into main
Reviewed-on: #2
2025-10-07 12:50:53 +02:00
5 changed files with 29 additions and 13 deletions

View File

@ -41,8 +41,10 @@ By setting `$BASE_DIR` you can persist the database for later runs.
## TODO ## TODO
- CI - [x] CI
- Docker container (in flake) - [x] Docker container (in flake)
- try fourmolu - [x] try fourmolu
- Test leap second handling in the `time` package - [x] Test leap second handling in the `time` package
- use queue to sync logging of indexer and main thread - [ ] Fix container shutdown delay
- [ ] Fix `responseFile` always returning 200
- [ ] use queue to sync logging of indexer and main thread

View File

@ -65,6 +65,7 @@ import Data.Time.Clock.POSIX (getPOSIXTime)
import qualified Envy import qualified Envy
import qualified Yore.DB as DB import qualified Yore.DB as DB
import qualified Yore.Log as Log import qualified Yore.Log as Log
import System.IO (hSetBuffering, BufferMode (..), stdout)
data ConfigT f = Config data ConfigT f = Config
{ yorePort :: f =@@ Int ? 3000 { yorePort :: f =@@ Int ? 3000
@ -79,6 +80,8 @@ deriving instance Show Config
main :: IO () main :: IO ()
main = do main = do
hSetBuffering stdout NoBuffering
cfg <- cfg <-
Envy.load @ConfigT >>= \case Envy.load @ConfigT >>= \case
Left errs -> do Left errs -> do

View File

@ -64,19 +64,30 @@
name = "git.pbrinkmeier.de/paul/yore"; name = "git.pbrinkmeier.de/paul/yore";
tag = yore.version; tag = yore.version;
copyToRoot = [ pkgs.cacert ]; copyToRoot = [ pkgs.cacert ];
config.Cmd = [ "${entrypoint}/bin/run" ]; config = {
Cmd = [ "${entrypoint}/bin/run" ];
StopSignal = "SIGINT";
};
}; };
entrypoint = pkgs.writeShellApplication { entrypoint = pkgs.writeShellApplication {
name = "run"; name = "run";
runtimeInputs = [ pkgs.coreutils pkgs.dbmate yore ]; runtimeInputs = [ pkgs.coreutils pkgs.dbmate yore ];
text = '' text = ''
mkdir -p /workspace/db set -Eeuo pipefail
cp -r ${./db}/* /workspace/db
cd /workspace
dbmate up
yore mkdir -p "''${YORE_DBMATE_DIR}"
TMPDIR=$(mktemp -dp "''${YORE_DBMATE_DIR}")
mkdir -p "''${TMPDIR}/db"
cp -r ${./db}/* "''${TMPDIR}/db"
cd "''${TMPDIR}"
dbmate up
chmod +w -R "''${TMPDIR}"
rm -rf "''${TMPDIR}"
# Replace bash and inherit PID 1
cd /
exec yore
''; '';
}; };
in { in {

View File

@ -112,7 +112,7 @@ showpdfRequest (y, m, d) =
NoReqBody NoReqBody
bsResponse bsResponse
( formToQuery ( formToQuery
[ ("cmd" :: Text, "showpdf") [ ("cmd" :: Text, "showpdfjs")
, ("year", y) , ("year", y)
, ("month", m) , ("month", m)
, ("day", d) , ("day", d)

View File

@ -1,7 +1,7 @@
cabal-version: 3.4 cabal-version: 3.4
name: yore name: yore
version: 0.0.2 version: 0.0.9
author: Paul Brinkmeier author: Paul Brinkmeier
maintainer: hallo@pbrinkmeier.de maintainer: hallo@pbrinkmeier.de
copyright: 2023 Paul Brinkmeier copyright: 2023 Paul Brinkmeier