File: file-location.cabal

package info (click to toggle)
haskell-file-location 0.4.9.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 112 kB
  • sloc: haskell: 282; ansic: 13; makefile: 2; sh: 1
file content (94 lines) | stat: -rw-r--r-- 2,828 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Name:                file-location
Version:             0.4.9.1
Synopsis:            common functions that show file location information
Homepage:            https://github.com/gregwebs/FileLocation.hs
License:             BSD3
License-file:        LICENSE
Author:              Greg Weber
Maintainer:          greg@gregweber.info
Category:            Development
Build-type:          Simple
Cabal-version:       >=1.8
Description: 
    Common debugging\/error\/exception functions that give file location information
    .
    @
    $(err \"OH NO!\")
       
    main:Main main.hs:16:1 OH NO!
    @
    .
    Notice how it displays package:module file:line:character
    .
    It exposes the functions err (error), undef (undefined), and trc (Debug.Trace.trace). All of these behave the same as their normal counterpart but also spit out a location.
    .
    Here is my favorite helper, debug, which is like trace but just show the value.
    .
    @
    debug [1,2,3]
    
    DEBUG: [1,2,3]
    [1,2,3]
    @
    .
    And The Template Haskell version.
    .
    @
    $(dbg) [1,2,3]
    
    DEBUG main:Main main.hs:1:3 [1,2,3]
    [1,2,3]
    @
    .
    Also there is a version of thrwIO that gives location information
    .
    @
    ($(thrwIO) $ AException) `catch` \e -> putStrLn (\"Caught \" ++ show (e :: AException))
    
    Caught AException \"main:Main test/main.hs:25:6\"
    @
    .
    See module for a listing of all the functions with short descriptions, and the homepage for some more examples https://github.com/gregwebs/ErrorLocation.hs

extra-source-files:
    test/*.sh
    test/*.hs
    test/*.shelltest
    test/bench/*.hs
    test/bench/*.md
    test/bench/*.h

Library
  Exposed-modules: FileLocation,
                   Debug.FileLocation,
                   Control.Exception.FileLocation,
                   Debug.Util,
                   FileLocation.LocationString
                   Test.FileLocation
  
  -- Packages needed in order to build this package.
  Build-depends:  base >= 4 && < 5
                , lifted-base
                , template-haskell
                , th-orphans       >= 0.9
                , transformers     >= 0.2 && < 0.6
                , containers
                , HUnit

-- This just helps you get the packages for test/main.hs
-- tests are ran with test/run.sh
-- probably can run it entirely through this interface with just a little work
test-suite test
    type:           exitcode-stdio-1.0
    main-is:        main.hs
    hs-source-dirs: test
    ghc-options: -Wall
    Build-depends: file-location
                 , base >= 4 && < 5
                 , lifted-base
                 , process
                  -- shelltestrunner: need shelltest executable

Source-Repository head
  type: git
  location:    https://github.com/gregwebs/FileLocation.hs