summaryrefslogtreecommitdiff
path: root/monky.cabal
blob: 2f8979deca0f5b4f043d064e384bc9ec48ad7cf0 (plain)
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
-- Initial monky.cabal generated by cabal init.  For further documentation,
--  see http://haskell.org/cabal/users-guide/

-- The name of the package.
name:                monky

-- 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:             2.2.1.1

-- The ABOVE LINE has to stay AS IS (except for version changes) for the
-- template to work properly

-- A short (one-line) description of the package.
synopsis: A system state collecting library and application

-- A longer description of the package.
description:
  monky started as an alternative to conky, i3-status or similar, that's fully containing in one process.
  Also making an effort to keep file descriptors or handles as long as possible.
  monky 2.0 is the first version on hackage.
  .
  monky consists of multiple parts. A number of collection modules, output modules, "examples" and a helper application.
  .
    * collection modules
    .
        The collection modules are the core library. Collection modules export a handle that can
        be used to get some detail about the system. They can be used without the other parts
        of this package, but they are designed with monky in mind.
    .
    * output modules
    .
        Output modules take a monky specific output type and transform it into something that can be
        displayed by some external application. That may be a statusbar (dzen2), the terminal,
        a network port, that makes it accessible on another machine, or any other thing.
    .
    * examples
    .
        The examples are a group of modules, that use collection modules to create the output used
        by the output modules. The flexibility of the examples varies greatly, some may are really
        flexible, some are rather static. The intended usecase is for users to create their own
        examples and use them, if they don't want to use the provided ones.
        .
        Later on, I want to create something like xmonad-contrib or a collection of user examples,
        to provide better usability for users with few to no experience with haskell.
    .
    * helper application
    .
      The helper application is used to compile the actual output generator and can generate an
      example configuration.
  .
  To generate an example configuration in /~\/.monky/ simply run `monky`.
  Then modify /~\/.monky\/monky.hs/ to create your own configuration.
  .
  Modules can have two types. 'PollModule' and 'EvtModule'. 'PollModule's work by the main loop
  asking the module to generate new output, while 'EvtModule's block until some event is received and
  update their output on demand. Some handles are an instance of both, 'PollModule' and 'EvtModule'.
  'EvtModule' should be preferred, since they induce less load on your system.
  The monky main-loop does one "tick" every second. 'PollModules' are updated each /N/ ticks, where
  /N/ is passed to 'pollPack'.

-- The license under which the package is released.
license:             LGPL-3

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

-- The package author(s).
author:              Moepi, Ongy

-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer:          Markus Ongyerth <ongy@ongy.net>

-- A copyright notice.
-- copyright:

category:            System

build-type:          Simple

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

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

Tested-With: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1

Flag ibus
  Description: enable ibus example
  Default: False

Flag pulse
  Description: enable pulse example (7.6 disabled because travis)
  Default: True

Source-repository head
  type:       git
  location:   https://github.com/monky-hs/monky


executable monky
  -- .hs or .lhs file containing the Main module.
  main-is:             Main.hs
  hs-source-dirs:      bin

  -- Modules included in this executable, other than Main.
  -- other-modules:

  other-modules: 

  -- LANGUAGE extensions used by modules in this package.
  -- other-extensions:

  -- Other library packages from which modules are imported.
  build-depends:       base >=4.6.0.1 && <5, directory, process, mtl
  build-depends:       unix, containers, monky, optparse-applicative

  -- Directories containing source files.
  -- hs-source-dirs:

  -- Base language which the package is written in.
  default-language:    Haskell2010

  ghc-options:         -Wall

library
  exposed-modules: Monky.Disk Monky.Modules Monky.Time Monky.CPU Monky.Memory Monky.Network Monky.Utility Monky.Alsa Monky.Battery Monky
  exposed-modules: Monky.Examples.Battery Monky.Examples.CPU Monky.Examples.Disk Monky.Examples.Network Monky.Examples.Time Monky.Examples.Memory
  exposed-modules: Monky.Disk.Btrfs Monky.Disk.Device
  exposed-modules: Monky.Examples.Prepend Monky.Connectivity
  exposed-modules: Monky.Wifi Monky.Examples.Wifi Monky.Examples.Wifi.Poll
  exposed-modules: Monky.Examples.Wifi.Event
  exposed-modules: Monky.Examples.Connectivity Monky.Network.Dynamic
  exposed-modules: Monky.Network.Static Monky.Examples.File Monky.Examples.Utility
  exposed-modules: Monky.Examples.Sound.Alsa  Monky.Examples.Alsa 
  exposed-modules: Monky.Examples.Tminus

  exposed-modules: Monky.Version Monky.Examples.Combine
  exposed-modules: Monky.Examples.Plain Monky.Disk.Common Monky.Blkid

  exposed-modules: Monky.Outputs.Dzen2 Monky.Outputs.Ascii Monky.Outputs.Utf8 Monky.Outputs.Guess
  exposed-modules: Monky.Outputs.Show  Monky.Outputs.Fallback Monky.Outputs.Serialize Monky.Outputs.I3
  exposed-modules: Monky.Outputs.Modify
  exposed-modules: Monky.Examples.Modify Monky.IP Monky.IP.Raw

  exposed-modules: Monky.Outputs.Unicode Monky.Examples.Images
  other-modules: Monky.Template Monky.VersionTH Monky.CUtil


  build-depends:       base >=4.6.0.1 && <=5, directory, time, old-time
  build-depends:       text, unix, network, mtl, transformers
  build-depends:       template-haskell, containers, stm, statvfs
  build-depends:       bytestring, netlink >= 1.1, cereal, formatting, composition
  build-depends:       env-locale >= 1.0.0.1, scientific

  -- force double-conversion version for old ghc/library?
  if impl(ghc < 7.8)
    build-depends: double-conversion == 0.2.0.6
  if impl(ghc >= 7.8)
    exposed-modules: Monky.MPD Monky.Examples.MPD
    -- build-depends: socket
  if impl(ghc < 7.10)
    build-depends: transformers-compat, old-locale


  if flag(ibus)
    build-depends: ibus-hs, dbus
    exposed-modules: Monky.Examples.IBus

  if impl(ghc >= 7.8)
    if flag(pulse)
      build-depends: pulseaudio >= 0.0.2.0 && < 0.1.0.0
      exposed-modules: Monky.Examples.Sound.Pulse

  ghc-options:         -Wall
  extra-libraries:     
  default-language:    Haskell2010