diff options
Diffstat (limited to 'users/Profpatsch/arglib')
-rw-r--r-- | users/Profpatsch/arglib/ArglibNetencode.hs | 17 | ||||
-rw-r--r-- | users/Profpatsch/arglib/arglib-netencode.cabal | 54 | ||||
-rw-r--r-- | users/Profpatsch/arglib/netencode.nix | 4 |
3 files changed, 61 insertions, 14 deletions
diff --git a/users/Profpatsch/arglib/ArglibNetencode.hs b/users/Profpatsch/arglib/ArglibNetencode.hs index e4609d26abf5..4531151ca298 100644 --- a/users/Profpatsch/arglib/ArglibNetencode.hs +++ b/users/Profpatsch/arglib/ArglibNetencode.hs @@ -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 -> diff --git a/users/Profpatsch/arglib/arglib-netencode.cabal b/users/Profpatsch/arglib/arglib-netencode.cabal index d9a049247395..42b524f405f8 100644 --- a/users/Profpatsch/arglib/arglib-netencode.cabal +++ b/users/Profpatsch/arglib/arglib-netencode.cabal @@ -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 diff --git a/users/Profpatsch/arglib/netencode.nix b/users/Profpatsch/arglib/netencode.nix index 88bad97a3a7e..83a94ddd6c46 100644 --- a/users/Profpatsch/arglib/netencode.nix +++ b/users/Profpatsch/arglib/netencode.nix @@ -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 ]; |