about summary refs log tree commit diff
path: root/users/Profpatsch/arglib
diff options
context:
space:
mode:
Diffstat (limited to 'users/Profpatsch/arglib')
-rw-r--r--users/Profpatsch/arglib/ArglibNetencode.hs17
-rw-r--r--users/Profpatsch/arglib/arglib-netencode.cabal54
-rw-r--r--users/Profpatsch/arglib/netencode.nix4
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
     ];