packages feed

hurl-workbench-cli-0.1.0.0: hurl-workbench-cli.cabal

cabal-version: 3.4
name: hurl-workbench-cli
version: 0.1.0.0
synopsis: Command-line interface for hurl-workbench
description:
  A Haskell-powered Hurl workbench for composing, exploring, executing, and
  testing reusable API workflows without duplicating request templates.
  .
  This package provides the @hurl-workbench@ executable (validate, list,
  render, run, test, matrix, doctor, and shell completions) for recipes,
  matrices, and integration suites, built on @hurl-workbench-core@, together
  with runnable example workspaces.

category: Web, Testing
license: BSD-3-Clause
license-file: LICENSE
author: Nadeem Bitar
maintainer: nadeem@gmail.com
copyright: (c) 2026 Nadeem Bitar
build-type: Simple
extra-doc-files:
  CHANGELOG.md
  README.md

extra-source-files:
  examples/**/*.dhall
  examples/**/*.hurl
  examples/**/*.md
  examples/**/*.py
  schema/*.dhall
  test/fixtures/scenario-isolation/*.dhall
  test/fixtures/scenario-isolation/*.py
  test/fixtures/scenario-isolation/hurl/*.hurl
  test/golden/top-level-help.txt
  test/golden/unknown-workflow.txt

common common-options
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-uni-patterns
    -Wincomplete-record-updates
    -Wredundant-constraints
    -fhide-source-paths
    -Wmissing-export-lists
    -Wpartial-fields
    -Wmissing-deriving-strategies

  default-language: GHC2024
  default-extensions:
    DeriveAnyClass
    DuplicateRecordFields
    OverloadedLabels
    OverloadedStrings

library
  import: common-options
  hs-source-dirs: src
  autogen-modules: Paths_hurl_workbench_cli
  other-modules: Paths_hurl_workbench_cli
  exposed-modules:
    HurlWorkbench.Cli
    HurlWorkbench.Cli.Command.Doctor
    HurlWorkbench.Cli.Command.List
    HurlWorkbench.Cli.Command.Matrix
    HurlWorkbench.Cli.Command.Render
    HurlWorkbench.Cli.Command.Run
    HurlWorkbench.Cli.Command.Suite
    HurlWorkbench.Cli.Command.Validate
    HurlWorkbench.Cli.Error
    HurlWorkbench.Cli.Help
    HurlWorkbench.Cli.Options
    HurlWorkbench.Cli.Output
    HurlWorkbench.Cli.Version
    HurlWorkbench.Cli.Workspace

  build-depends:
    base >=4.20 && <5,
    bytestring >=0.11 && <0.13,
    containers >=0.6 && <0.8,
    directory ^>=1.3,
    filepath >=1.4 && <1.6,
    generic-lens ^>=2.3,
    githash >=0.1.7 && <0.2,
    hurl-workbench-core ^>=0.1.0.0,
    lens ^>=5.3,
    optparse-applicative >=0.19 && <0.20,
    temporary ^>=1.3,
    terminal-size >=0.3.4 && <0.4,
    text ^>=2.1,

executable hurl-workbench
  import: common-options
  main-is: Main.hs
  hs-source-dirs: app
  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N

  build-depends:
    base >=4.20 && <5,
    hurl-workbench-cli,

executable hurl-workbench-fixture-server
  import: common-options
  main-is: Main.hs
  hs-source-dirs: test/fixture-server
  other-modules:
    FixtureServer

  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N

  build-depends:
    base >=4.20 && <5,
    bytestring >=0.11 && <0.13,
    directory ^>=1.3,
    filepath >=1.4 && <1.6,
    http-types >=0.12 && <0.13,
    unix >=2.8.8 && <2.9,
    wai >=3.2.5 && <3.3,
    warp >=3.4.16 && <3.5,

test-suite hurl-workbench-cli-test
  import: common-options
  type: exitcode-stdio-1.0
  hs-source-dirs:
    test
    test/fixture-server

  main-is: Main.hs
  other-modules:
    CheckTest
    FileRootTest
    FixtureServer

  ghc-options:
    -threaded

  build-depends:
    async,
    base >=4.20 && <5,
    bytestring,
    containers,
    directory,
    filepath,
    generic-lens,
    http-types,
    hurl-workbench-cli,
    hurl-workbench-core ^>=0.1.0.0,
    lens,
    optparse-applicative,
    tasty ^>=1.5,
    tasty-hunit ^>=0.10,
    temporary,
    text,
    unix,
    wai,
    warp,