packages feed

shikumi-tools-0.2.0.0: src/Shikumi/Tool/Builtin.hs

-- | Built-in work-tool catalog.
module Shikumi.Tool.Builtin
  ( builtinFsTools,
    builtinWebTools,
    builtinTools,
    builtinRegistry,
    module Shikumi.Tool.Builtin.Fs,
    module Shikumi.Tool.Builtin.Shell,
    module Shikumi.Tool.Builtin.Web,
  )
where

import Shikumi.Tool (SomeTool (..), ToolRegistry, mkRegistry)
import Shikumi.Tool.Builtin.Fs
import Shikumi.Tool.Builtin.Shell
import Shikumi.Tool.Builtin.Web
import Shikumi.Tool.Env (ToolEnv)
import Shikumi.Tool.Web (WebClient)

builtinFsTools :: ToolEnv -> [SomeTool]
builtinFsTools env =
  [ SomeTool (readTool env),
    SomeTool (writeTool env),
    SomeTool (editTool env),
    SomeTool (grepTool env),
    SomeTool (bashTool env),
    SomeTool (globTool env)
  ]

builtinWebTools :: WebClient -> [SomeTool]
builtinWebTools client =
  [ SomeTool (webFetchTool client),
    SomeTool (webSearchTool client)
  ]

builtinTools :: ToolEnv -> WebClient -> [SomeTool]
builtinTools env client = builtinFsTools env <> builtinWebTools client

builtinRegistry :: ToolEnv -> WebClient -> ToolRegistry
builtinRegistry env client = mkRegistry (builtinTools env client)