File: ReadArgs.cabal

package info (click to toggle)
haskell-readargs 1.2.1-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 80 kB
  • ctags: 1
  • sloc: haskell: 240; makefile: 3
file content (110 lines) | stat: -rw-r--r-- 3,019 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Name:                ReadArgs
Version:             1.2.1
Synopsis:            Simple command line argument parsing

Description:         

  ReadArgs provides the @readArgs@ IO action, which lets you tell the compiler 
  to parse the command line arguments to fit the type signature you give.
  .
  For example @(a :: Int, b :: String, c :: Float) <- readArgs@ would
  parse the first runtime argument as an @Int@, the second as a @String@ (no
  quotes required) and the third as a @Float@.
  .
  If the runtime arguments are incompatible with the type signature,
  then a simple usage statement is given of the types needed.
  .
  Continuing the previous example, if it was used in a
  program named @Example@, the error message for the above
  action would be: 
  .
  @
    usage: Example Int String Float
  @
  .
  Any type that has both @Typeable@ and @Read@ instances
  can be used. @Char@, @String@, and @Text@ are handled specially so that
  command line arguments for both do not require quotes (as their 
  @Read@ instances do). A special instance is provided for @FilePath@ so 
  that no constructor or quotes are required.
  .
  @readArgs@ also supports optional arguments and variadic arguments.
  Optional arguments are specified using @Maybe@, and variadic arguments 
  using a list.  @(a :: Int, b :: Maybe String, c :: [Float]) <- readArgs@ 
  would successfully parse any of the following sets of command line arguments:
  .
  @
    Example 1
    Example 1 2 3 4
    Example 1 foo
    Example 1 foo 2 3 4
  @
  .
  But not
  .
  @
    Example
    Example foo
    Example 1.0
  @
  .
  Usage statements for optional and variadic arguments use command-line
  parlance:
  .
  @
    usage: Example Int [String] [Float..]
  @
  .
  Note that both optional and variadic parsers are greedy by default 
  (so @Example 1 2 3 4@ was parsed as @(1, "2", [3.0,4.0])@.  They
  may both be made non-greedy through use of the @NonGreedy@ constructor:
  .
  @
    ( a :: Int
    , NonGreedy b :: NonGreedy Maybe String
    , NonGreedy c :: NonGreedy [] Float
    ) <- readArgs
  @

Homepage:            http://github.com/rampion/ReadArgs
License:             BSD3
License-file:        LICENSE
Author:              Noah Luck Easterly
Maintainer:          noah.easterly@gmail.com
Category:            Command Line
Build-type:          Simple
Cabal-version:       >=1.8

Source-repository head
  type: git 
  location: git://github.com/rampion/ReadArgs.git

Library
  Exposed-modules:     ReadArgs

  Build-depends: 
    base >= 4.3.1.0 && < 5,
    system-filepath >= 0.4.7 && < 0.5,
    text >= 0.11.1.13 && < 12
  
Test-Suite ReadArgsSpec
  type:
    exitcode-stdio-1.0

  Main-Is:
    ReadArgsSpec.hs

  Build-depends:       
    hspec >= 1.3 && < 2,
    base >= 4.3.1.0 && < 5,
    system-filepath >= 0.4.7 && < 0.5,
    text >= 0.11.1.13 && < 12
  
Executable ReadArgsEx
  Main-Is:
    ReadArgsEx.hs

  Build-depends: 
    base >= 4.3.1.0 && < 5,
    system-filepath >= 0.4.7 && < 0.5,
    text >= 0.11.1.13 && < 12