suckless-conf-0.1.2.9: suckless-conf.cabal
cabal-version: 3.0
name: suckless-conf
version: 0.1.2.9
synopsis: S-expression configuration language and the bf6 script runtime
description:
@suckless-conf@ is a small Lisp-like, s-expression configuration
language with an embedded scripting layer. It parses configuration
files into a simple @Syntax@ tree, offers a key-value access layer
and bridges to Aeson, TOML, YAML and INI, and ships a tiny
interpreter (@Data.Config.Suckless.Script@) that evaluates the same
syntax as a script. The package also installs @bf6@, the standalone
script runtime that the <https://github.com/NCrashed/hbs2 hbs2>
project uses via a shebang for its tooling.
Originally written by Dmitry Zuykov (voidlizard) for the @hbs2@
project, this Hackage release is published from
<https://github.com/NCrashed/suckless-conf> so downstream projects
can depend on it without vendoring.
The s-expression tokenizer and reader (@Data.Text.Fuzzy.Tokenize@
and @Data.Text.Fuzzy.SExp@) are bundled as internal modules,
derived from the MIT-licensed @fuzzy-parse@ package.
license: BSD-3-Clause AND MIT
license-files: LICENSE
LICENSE.fuzzy-parse
author: Dmitry Zuykov
maintainer: Anton Gushcha <ncrashed@gmail.com>
copyright: (c) Dmitry Zuykov 2023, (c) Anton Gushcha 2026
category: Text
build-type: Simple
tested-with: GHC == 9.6.6
extra-doc-files: CHANGELOG.md
README.md
extra-source-files: t/key-value-test-config
homepage: https://github.com/NCrashed/suckless-conf
bug-reports: https://github.com/NCrashed/suckless-conf/issues
source-repository head
type: git
location: https://github.com/NCrashed/suckless-conf.git
common shared-properties
ghc-options:
-Wall
default-language: Haskell2010
default-extensions:
ApplicativeDo
, BangPatterns
, BlockArguments
, ConstraintKinds
, DataKinds
, DeriveDataTypeable
, DeriveGeneric
, DerivingStrategies
, DerivingVia
, ExtendedDefaultRules
, FlexibleContexts
, FlexibleInstances
, GADTs
, GeneralizedNewtypeDeriving
, ImportQualifiedPost
, LambdaCase
, MultiParamTypeClasses
, OverloadedStrings
, QuasiQuotes
, ScopedTypeVariables
, StandaloneDeriving
, TupleSections
, TypeApplications
, TypeFamilies
library
import: shared-properties
exposed-modules:
Data.Config.Suckless
, Data.Config.Suckless.Syntax
, Data.Config.Suckless.Parse
, Data.Config.Suckless.Parse.Fuzzy
, Data.Config.Suckless.KeyValue
, Data.Config.Suckless.System
, Data.Config.Suckless.Script
, Data.Config.Suckless.Script.File
, Data.Config.Suckless.Script.Internal
, Data.Config.Suckless.Almost.RPC
other-modules:
Data.Config.Suckless.Types
, Data.Text.Fuzzy.Tokenize
, Data.Text.Fuzzy.SExp
build-depends: base >= 4.17 && < 5
, aeson >= 2.1 && < 2.3
, bytestring >= 0.11 && < 0.13
, containers >= 0.6 && < 0.8
, directory >= 1.3 && < 1.4
, filepath >= 1.4 && < 1.6
, filepattern >= 0.1 && < 0.2
, hashable >= 1.4 && < 1.6
, html-entities >= 1.1 && < 1.2
, ini >= 0.4 && < 0.5
, interpolatedstring-perl6 >= 1.0 && < 1.1
, microlens-platform >= 0.4 && < 0.5
, mtl >= 2.3 && < 2.4
, prettyprinter >= 1.7 && < 1.8
, prettyprinter-ansi-terminal >= 1.1 && < 1.2
, random >= 1.2 && < 1.3
, random-shuffle >= 0.0.4 && < 0.1
, safe >= 0.3 && < 0.4
, scientific >= 0.3 && < 0.4
, streaming >= 0.2 && < 0.3
, split >= 0.2 && < 0.3
, stm >= 2.5 && < 2.6
, text >= 2.0 && < 2.2
, time >= 1.12 && < 1.13
, transformers >= 0.6 && < 0.7
, toml-parser >= 1.3 && < 1.4
, typed-process >= 0.2 && < 0.3
, temporary >= 1.3 && < 1.4
, uniplate >= 1.6 && < 1.7
, unliftio >= 0.2 && < 0.3
, unordered-containers >= 0.2 && < 0.3
, uuid >= 1.3 && < 1.4
, vector >= 0.13 && < 0.14
, yaml >= 0.11 && < 0.12
hs-source-dirs: lib
executable bf6
import: shared-properties
main-is: Main.hs
ghc-options:
-threaded
-rtsopts
"-with-rtsopts=-N4 -A64m -AL256m -I0"
build-depends:
base, unliftio, suckless-conf, safe
hs-source-dirs: bf6
default-language: GHC2021
test-suite spec
import: shared-properties
type: exitcode-stdio-1.0
main-is: Spec.hs
other-modules:
Data.Config.Suckless.KeyValueSpec
Data.Config.Suckless.AesonSpec
hs-source-dirs:
test
ghc-options:
-Wall
-threaded
-rtsopts
-with-rtsopts=-N
build-tool-depends:
hspec-discover:hspec-discover
build-depends: base
, hspec
, aeson
, scientific
, suckless-conf
, containers
, mtl
, text
, prettyprinter
, interpolatedstring-perl6
, tasty-hunit
default-language: Haskell2010
default-extensions:
DerivingStrategies
, FlexibleInstances
, MultiParamTypeClasses
, OverloadedStrings
, ScopedTypeVariables
, TypeApplications