snix/users/Profpatsch/whatcd-resolver/whatcd-resolver.cabal
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

131 lines
2.9 KiB
Text

cabal-version: 3.0
name: whatcd-resolver
version: 0.1.0.0
author: Profpatsch
maintainer: mail@profpatsch.de
common common-options
ghc-options:
-Wall
-Wno-type-defaults
-Wunused-packages
-Wredundant-constraints
-fwarn-missing-deriving-strategies
-- See https://downloads.haskell.org/ghc/latest/docs/users_guide/exts.html
-- for a description of all these extensions
default-extensions:
-- Infer Applicative instead of Monad where possible
ApplicativeDo
-- Allow literal strings to be Text
OverloadedStrings
-- Syntactic sugar improvements
LambdaCase
MultiWayIf
-- Makes the (deprecated) usage of * instead of Data.Kind.Type an error
NoStarIsType
-- Convenient and crucial to deal with ambiguous field names, commonly
-- known as RecordDotSyntax
OverloadedRecordDot
-- does not export record fields as functions, use OverloadedRecordDot to access instead
NoFieldSelectors
-- Allow the same record field name to be declared twice per module.
-- This works, because we use `OverloadedRecordDot` everywhere (enforced by `NoFieldSelectors`).
DuplicateRecordFields
-- Record punning
RecordWildCards
-- Improved Deriving
DerivingStrategies
DerivingVia
-- Type-level strings
DataKinds
-- to enable the `type` keyword in import lists (ormolu uses this automatically)
ExplicitNamespaces
-- allows defining pattern synonyms, but also the `import Foo (pattern FooPattern)` import syntax
PatternSynonyms
default-language: GHC2021
library
import: common-options
hs-source-dirs: src
exposed-modules:
WhatcdResolver
AppT
Bencode
JsonLd
Optional
Http
Html
Transmission
Redacted
build-depends:
base >=4.15 && <5,
text,
my-prelude,
my-webstuff,
pa-prelude,
pa-error-tree,
pa-label,
pa-field-parser,
pa-run-command,
aeson-better-errors,
aeson,
bencode,
blaze-html,
bytestring,
case-insensitive,
conduit,
containers,
unordered-containers,
directory,
exceptions,
filepath,
hs-opentelemetry-sdk,
hs-opentelemetry-api,
http-conduit,
http-types,
http-client,
ihp-hsx,
monad-logger,
mtl,
network-uri,
random,
resource-pool,
template-haskell,
postgresql-simple,
punycode,
tmp-postgres,
time,
unliftio,
selective,
wai-extra,
wai,
warp,
executable whatcd-resolver
import: common-options
main-is: Main.hs
build-depends:
base >=4.15 && <5,
whatcd-resolver
ghc-options:
-threaded