debian-3.95: src/Debian/Codename.hs
-- | https://wiki.debian.org/DebianRepository/Format#Codename
{-# LANGUAGE DeriveDataTypeable, TemplateHaskell #-}
module Debian.Codename
( Codename(..)
, codename
, parseCodename
) where
import Data.Data (Data, Typeable)
import Debian.TH ({-instance Pretty Loc-})
import Network.URI (unEscapeString, escapeURIString, isAllowedInURI)
--import Text.PrettyPrint.HughesPJClass as PP (Pretty(pPrint), text)
import Text.PrettyPrint (text)
import Distribution.Pretty
data Codename = Codename String deriving (Eq, Ord, Read, Show, Data, Typeable)
parseCodename :: String -> Codename
parseCodename = Codename . unEscapeString
codename :: Codename -> String
codename (Codename s) = escapeURIString isAllowedInURI s
instance Pretty Codename where
pretty (Codename s) = text s