snix/users/Profpatsch/whatcd-resolver/default.nix
Profpatsch dde78515f6 feat(users/Profpatsch/whatcd-resolver): add a simple torrent parser
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>
2025-03-06 23:41:43 +00:00

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
]