-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmonky.cabal
184 lines (146 loc) · 7.05 KB
/
monky.cabal
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: False
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