Compare commits

..

No commits in common. "main" and "ci" have entirely different histories.
main ... ci

5 changed files with 15 additions and 46 deletions

View File

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

View File

@ -65,7 +65,6 @@ 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
@ -80,8 +79,6 @@ 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

@ -58,48 +58,22 @@
# Return only the bin folder to curb image size # Return only the bin folder to curb image size
compose.justStaticExecutables compose.justStaticExecutables
]; ];
image =
pkgs.dockerTools.buildImage {
name = "git.pbrinkmeier.de/paul/yore";
tag = yore.version;
copyToRoot = [ pkgs.cacert ];
config = {
Cmd = [ "${entrypoint}/bin/run" ];
StopSignal = "SIGINT";
};
};
entrypoint = pkgs.writeShellApplication {
name = "run";
runtimeInputs = [ pkgs.coreutils pkgs.dbmate yore ];
text = ''
set -Eeuo pipefail
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 {
packages = rec { packages = rec {
default = yore; default = yore;
inherit yore image; inherit yore;
yore-meta = pkgs.runCommand "yore-meta" {} '' yore-meta = pkgs.runCommand "yore-meta" {} ''
mkdir -p $out mkdir -p $out
echo -n ${yore.version} > $out/version echo -n ${yore.version} > $out/version
echo -n ${image.drvAttrs.imageName}:${image.drvAttrs.imageTag} > $out/image-tag echo -n git.pbrinkmeier.de/paul/yore:${yore.version} > $out/image-tag
''; '';
image =
pkgs.dockerTools.buildImage {
name = "git.pbrinkmeier.de/paul/yore";
tag = yore.version;
config.Cmd = [ "${yore}/bin/yore" ];
};
opium_ = opium.packages.${system}.opium; opium_ = opium.packages.${system}.opium;
}; };

View File

@ -112,7 +112,7 @@ showpdfRequest (y, m, d) =
NoReqBody NoReqBody
bsResponse bsResponse
( formToQuery ( formToQuery
[ ("cmd" :: Text, "showpdfjs") [ ("cmd" :: Text, "showpdf")
, ("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.9 version: 0.0.1
author: Paul Brinkmeier author: Paul Brinkmeier
maintainer: hallo@pbrinkmeier.de maintainer: hallo@pbrinkmeier.de
copyright: 2023 Paul Brinkmeier copyright: 2023 Paul Brinkmeier