name: playlists version: 0.3.0.0 synopsis: Library and executable for working with playlist files. homepage: https://github.com/pjones/playlists license: BSD3 license-file: LICENSE author: Peter Jones maintainer: Peter Jones copyright: Copyright (c) 2013,2014 Peter Jones category: Text build-type: Simple cabal-version: >=1.8 description: Playlists is a library for working with media playlist files. The original motivation for the library was extracting URLs for streaming radio stations that use PLS and M3U playlist files. . The package also includes an executable that can dump the URLs from a playlist file and convert between playlist file formats. . /Example:/ . > import qualified Data.ByteString as BS > import Text.Playlist > > readPlaylist :: Format -> IO Playlist > readPlaylist fmt = do > content <- BS.getContents > case parsePlaylist fmt content of > Left err -> fail $ "failed to parse playlist on stdin: " ++ err > Right x -> return x . /Playlist Executable Examples:/ . > $ playlist urls --format PLS < somefile.pls > > $ playlist convert --from PLS --to M3U < somefile.pls -------------------------------------------------------------------------------- extra-source-files: README.md CHANGELOG test/*.m3u test/*.pls test/*.hs -------------------------------------------------------------------------------- source-repository head type: git location: https://github.com/pjones/playlists.git -------------------------------------------------------------------------------- flag maintainer description: Enable settings for the package maintainer. default: False manual: True ------------------------------------------------------------------------------ -- You can disable the hlint test suite with -f-test-hlint flag test-hlint description: Run the source code through hlint when testing. default: True manual: True ------------------------------------------------------------------------------ -- You can disable the doctest test suite with -f-test-doctest flag test-doctest description: Run the source code through doctest when testing. default: True manual: True -------------------------------------------------------------------------------- library exposed-modules: Text.Playlist other-modules: Text.Playlist.Types Text.Playlist.M3U.Reader Text.Playlist.M3U.Writer Text.Playlist.PLS.Reader Text.Playlist.PLS.Writer Text.Playlist.Internal.Attoparsec hs-source-dirs: src ghc-options: -Wall ghc-prof-options: -fprof-auto-top extensions: OverloadedStrings if flag(maintainer) ghc-options: -Werror build-depends: base >= 4.6 && < 5 , attoparsec >= 0.10 && < 1.0 , bytestring >= 0.10 && < 1.0 , text >= 0.11 && < 1.3 , word8 >= 0.0 && < 1.0 , filepath >= 1.3 && < 2.0 -------------------------------------------------------------------------------- executable playlist hs-source-dirs: ./ main-is: playlist.hs ghc-options: -Wall -rtsopts ghc-prof-options: -fprof-auto-top -fprof-cafs extensions: OverloadedStrings if flag(maintainer) ghc-options: -Werror build-depends: base , bytestring , optparse-applicative >= 0.10.0 && < 0.12.0 , playlists , text -------------------------------------------------------------------------------- test-suite spec type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Main.hs ghc-options: -Wall extensions: OverloadedStrings build-depends: base , bytestring , hspec >= 1.4.0 , playlists ------------------------------------------------------------------------------ test-suite hlint type: exitcode-stdio-1.0 hs-source-dirs: test main-is: hlint.hs ghc-options: -w if !flag(test-hlint) buildable: False else build-depends: base , hlint >= 1.7 ------------------------------------------------------------------------------ test-suite doctests type: exitcode-stdio-1.0 ghc-options: -threaded hs-source-dirs: test main-is: doctest.hs if !flag(test-doctest) buildable: False else build-depends: base , doctest >= 0.9.11