Compare commits

...

2 commits

3 changed files with 12 additions and 5 deletions

View file

@ -27,9 +27,10 @@ library
BlockArguments BlockArguments
OverloadedStrings OverloadedStrings
ImportQualifiedPost ImportQualifiedPost
ghc-options: -Wall -Wunused-packages -fdefer-typed-holes ghc-options: -Wall -fdefer-typed-holes
build-depends: build-depends:
base >=4.13 && <5 base >=4.13 && <5
, process
, text , text
default-language: GHC2021 default-language: GHC2021
@ -43,7 +44,7 @@ executable hcat
BlockArguments BlockArguments
OverloadedStrings OverloadedStrings
ImportQualifiedPost ImportQualifiedPost
ghc-options: -Wall -Wunused-packages -fdefer-typed-holes ghc-options: -Wall -fdefer-typed-holes
build-depends: build-depends:
base >=4.13 && <5 base >=4.13 && <5
, hcat , hcat
@ -61,7 +62,7 @@ test-suite spec
BlockArguments BlockArguments
OverloadedStrings OverloadedStrings
ImportQualifiedPost ImportQualifiedPost
ghc-options: -Wall -Wunused-packages -fdefer-typed-holes ghc-options: -Wall -fdefer-typed-holes
cpp-options: -DTEST cpp-options: -DTEST
build-tool-depends: build-tool-depends:
hspec-discover:hspec-discover hspec-discover:hspec-discover

View file

@ -13,12 +13,10 @@ dependencies:
- base >= 4.13 && < 5 - base >= 4.13 && < 5
# - bytestring # - bytestring
# - time # - time
# - process
# - directory # - directory
ghc-options: ghc-options:
- -Wall - -Wall
- -Wunused-packages
- -fdefer-typed-holes - -fdefer-typed-holes
default-extensions: default-extensions:
@ -30,6 +28,7 @@ library:
source-dirs: src source-dirs: src
dependencies: dependencies:
- text - text
- process
verbatim: verbatim:
default-language: GHC2021 default-language: GHC2021

View file

@ -4,6 +4,8 @@ module HCat.Internal where
import Data.Text (Text) import Data.Text (Text)
import Data.Text qualified as T import Data.Text qualified as T
import System.Process qualified as P
-- | @parseArgs@ takes a list of strings and returns a single FilePath if there was exactly one element. -- | @parseArgs@ takes a list of strings and returns a single FilePath if there was exactly one element.
-- --
-- >>> parseArgs ["foo"] -- >>> parseArgs ["foo"]
@ -67,3 +69,8 @@ paginate (ScreenDimensions rows cols) =
type Pages = [Page] type Pages = [Page]
type Page = Text type Page = Text
getScreenDimensions :: IO ScreenDimensions
getScreenDimensions = ScreenDimensions <$> tput "lines" <*> tput "cols"
where
tput cmd = read <$> P.readProcess "tput" [cmd] ""