The `bencode` library is anything but production-grade, but it’s enough to parse the torrent files generated by Gazelle lol. This should help with … I haven’t really figured out yet what it helps with I guess. But it was fun. I like the `Parse` abstraction very much. It can parse XML and it can parse Bencode. Good. Change-Id: If1331de423eab3e91ce9db6e2a7eb84da51b18a2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/13211 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
77 lines
2 KiB
Nix
77 lines
2 KiB
Nix
{ depot, pkgs, lib, ... }:
|
|
|
|
let
|
|
# bins = depot.nix.getBins pkgs.sqlite ["sqlite3"];
|
|
|
|
whatcd-resolver = pkgs.haskellPackages.mkDerivation {
|
|
pname = "whatcd-resolver";
|
|
version = "0.1.0";
|
|
|
|
src = depot.users.Profpatsch.exactSource ./. [
|
|
./whatcd-resolver.cabal
|
|
./Main.hs
|
|
./src/WhatcdResolver.hs
|
|
./src/AppT.hs
|
|
./src/Bencode.hs
|
|
./src/JsonLd.hs
|
|
./src/Optional.hs
|
|
./src/Html.hs
|
|
./src/Http.hs
|
|
./src/Transmission.hs
|
|
./src/Redacted.hs
|
|
];
|
|
|
|
libraryHaskellDepends = [
|
|
depot.users.Profpatsch.my-prelude
|
|
depot.users.Profpatsch.my-webstuff
|
|
pkgs.haskellPackages.pa-prelude
|
|
pkgs.haskellPackages.pa-label
|
|
pkgs.haskellPackages.pa-error-tree
|
|
pkgs.haskellPackages.pa-field-parser
|
|
pkgs.haskellPackages.pa-run-command
|
|
pkgs.haskellPackages.aeson-better-errors
|
|
pkgs.haskellPackages.bencode
|
|
pkgs.haskellPackages.blaze-html
|
|
pkgs.haskellPackages.hs-opentelemetry-sdk
|
|
pkgs.haskellPackages.http-conduit
|
|
pkgs.haskellPackages.http-types
|
|
pkgs.haskellPackages.ihp-hsx
|
|
pkgs.haskellPackages.monad-logger
|
|
pkgs.haskellPackages.resource-pool
|
|
pkgs.haskellPackages.postgresql-simple
|
|
pkgs.haskellPackages.tmp-postgres
|
|
pkgs.haskellPackages.unliftio
|
|
pkgs.haskellPackages.wai-extra
|
|
pkgs.haskellPackages.warp
|
|
pkgs.haskellPackages.punycode
|
|
];
|
|
|
|
isExecutable = true;
|
|
isLibrary = false;
|
|
license = lib.licenses.mit;
|
|
};
|
|
|
|
bins = depot.nix.getBins whatcd-resolver [ "whatcd-resolver" ];
|
|
|
|
in
|
|
|
|
depot.nix.writeExecline "whatcd-resolver-wrapped" { } [
|
|
"importas"
|
|
"-i"
|
|
"PATH"
|
|
"PATH"
|
|
"export"
|
|
"PATH"
|
|
# TODO: figure out how to automatically migrate to a new postgres version with tmp_postgres (dump?)
|
|
"${pkgs.postgresql_14}/bin:$${PATH}"
|
|
"export"
|
|
"WHATCD_RESOLVER_TOOLS"
|
|
(pkgs.linkFarm "whatcd-resolver-tools" [
|
|
{
|
|
name = "pg_format";
|
|
path = "${pkgs.pgformatter}/bin/pg_format";
|
|
}
|
|
])
|
|
bins.whatcd-resolver
|
|
]
|
|
|