chore(users/Profpatsch/*): more cabal maintenance

Change-Id: Ib1714abce2815873eb50dbeac088e812fa9098ab
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8686
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
This commit is contained in:
Profpatsch 2023-05-28 20:58:20 +02:00 committed by clbot
parent ee21f725a3
commit 8c4730c433
24 changed files with 264 additions and 203 deletions

View file

@ -1,20 +1,17 @@
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
module ArglibNetencode where
import qualified Data.Attoparsec.ByteString as Atto
import Data.Maybe (fromMaybe)
import Data.Attoparsec.ByteString qualified as Atto
import ExecHelpers
import MyPrelude
import Netencode
import qualified System.Environment as Env
import qualified System.Posix.Env.ByteString as ByteEnv
import Label
import Netencode qualified
import PossehlAnalyticsPrelude
import System.Posix.Env.ByteString qualified as ByteEnv
arglibNetencode :: CurrentProgramName -> Maybe Text -> IO T
arglibNetencode :: CurrentProgramName -> Maybe (Label "arglibEnvvar" Text) -> IO Netencode.T
arglibNetencode progName mEnvvar = do
let envvar = mEnvvar & fromMaybe "ARGLIB_NETENCODE" & textToBytesUtf8
let envvar = mEnvvar <&> (.arglibEnvvar) & fromMaybe "ARGLIB_NETENCODE" & textToBytesUtf8
ByteEnv.getEnv envvar >>= \case
Nothing -> dieUserError progName [fmt|could not read args, envvar {envvar} not set|]
Just bytes ->

View file

@ -1,17 +1,65 @@
cabal-version: 2.4
cabal-version: 3.0
name: arglib-netencode
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
-- Record punning
RecordWildCards
-- Improved Deriving
DerivingStrategies
DerivingVia
-- Type-level strings
DataKinds
-- to enable the `type` keyword in import lists (ormolu uses this automatically)
ExplicitNamespaces
default-language: GHC2021
library
import: common-options
exposed-modules: ArglibNetencode
build-depends:
base >=4.15 && <5,
my-prelude,
pa-prelude,
pa-label,
netencode,
exec-helpers,
attoparsec,
unix
default-language: Haskell2010

View file

@ -57,7 +57,9 @@ let
];
libraryHaskellDepends = [
depot.users.Profpatsch.my-prelude
pkgs.haskellPackages.pa-prelude
pkgs.haskellPackages.pa-label
pkgs.haskellPackages.pa-error-tree
depot.users.Profpatsch.netencode.netencode-hs
depot.users.Profpatsch.execline.exec-helpers-hs
];