-- Initial irc-ctcp.cabal generated by cabal init.  For further 
-- documentation, see http://haskell.org/cabal/users-guide/

-- The name of the package.
name:                irc-ctcp

-- The package version.  See the Haskell package versioning policy (PVP) 
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary:      +-+------- breaking API changes
--                   | | +----- non-breaking API additions
--                   | | | +--- code changes with no API change
version:             0.1.1.0

-- A short (one-line) description of the package.
synopsis:            A CTCP encoding and decoding library for IRC clients.

-- A longer description of the package.
description:
  CTCP (Client To Client Protocol) is a way of sending arbitrary data
  over an IRC network, which may include bytes not allowed in standard
  IRC messages. CTCPs are sent as a PRIVMSG or NOTICE, where the first
  and last characters as @\\001@ (SOH), and special bytes are escaped
  by encoding them into a two-byte sequence beginning with @\\020@
  (DLE). CTCPs consist of command name (typically in upper-case)
  followed by list of space-separated arguments, which may be empty.
  .
  One use of CTCPs supported by the vast majority of IRC clients today
  is the ACTION command, typically invoked with /me. For example, if
  the user @foo@ in the channel @#bar@ were to issue
  .
  > /me dances
  .
  everyone in the channel would receive the message
  .
  > :foo PRIVMSG #bar :\001ACTION dances\001
  .
  Other common uses of CTCP include requesting the name and version of
  a user's IRC client, their local time, determining ping times, and
  initiating file transfers (DCC).
  .
  Characters are escaped as follows:
  .
     [@\\000@ (NUL)] @\\020 \\060@ ("0")
  .
     [@\\012@ (NL)]  @\\020 \\156@ ("n")
  .
     [@\\015@ (CR)]  @\\020 \\162@ ("r")
  .
     [@\\020@ (DLE)] @\\020 \\020@
  .
  All other appearences of the escape character are errors, and are
  dropped.
  .
  See <http://www.irchelp.org/irchelp/rfc/ctcpspec.html> for more
  details.

-- URL for the project homepage or repository.
homepage:            https://github.com/barrucadu/yukibot

-- The license under which the package is released.
license:             OtherLicense

-- The file containing the license text.
license-file:        LICENSE

-- The package author(s).
author:              Michael Walker

-- An email address to which users can send suggestions, bug reports, and 
-- patches.
maintainer:          mike@barrucadu.co.uk

-- A copyright notice.
-- copyright:           

category:            Network

build-type:          Simple

-- Extra files to be distributed with the package, such as examples or a 
-- README.
extra-source-files:  changes.md

-- Constraint on the version of Cabal needed to build this package.
cabal-version:       >=1.10


library
  -- Modules exported by the library.
  exposed-modules:     Network.IRC.CTCP
  
  -- Modules included in this library but not exported.
  -- other-modules:       
  
  -- LANGUAGE extensions used by modules in this package.
  -- other-extensions:    
  
  -- Other library packages from which modules are imported.
  build-depends:       base       >=4.7 && <5
                     , bytestring >=0.10
                     , text       >=1.1
  
  -- Directories containing source files.
  -- hs-source-dirs:      
  
  -- Base language which the package is written in.
  default-language:    Haskell2010