File: dbus.cabal

package info (click to toggle)
haskell-dbus 1.4.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 524 kB
  • sloc: haskell: 7,623; xml: 90; makefile: 2
file content (172 lines) | stat: -rw-r--r-- 4,332 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
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
name: dbus
version: 1.4.1
license: Apache-2.0
license-file: license.txt
author: John Millikin <john@john-millikin.com>
maintainer: Andrey Sverdlichenko <blaze@rusty.zone>
build-type: Simple
cabal-version: >= 1.10
category: Network, Desktop
stability: experimental
homepage: https://github.com/rblaze/haskell-dbus#readme

synopsis: A client library for the D-Bus IPC system.
description:
  D-Bus is a simple, message-based protocol for inter-process
  communication, which allows applications to interact with other parts of
  the machine and the user's session using remote procedure calls.
  .
  D-Bus is a essential part of the modern Linux desktop, where it replaces
  earlier protocols such as CORBA and DCOP.
  .
  This library is an implementation of the D-Bus protocol in Haskell. It
  can be used to add D-Bus support to Haskell applications, without the
  awkward interfaces common to foreign bindings.
  .
  Example: connect to the session bus, and get a list of active names.
  .
  @
  &#x7b;-\# LANGUAGE OverloadedStrings \#-&#x7d;
  .
  import Data.List (sort)
  import DBus
  import DBus.Client
  .
  main = do
  &#x20;   client <- connectSession
  &#x20;
  &#x20;   -- Request a list of connected clients from the bus
  &#x20;   reply <- call_ client (methodCall \"\/org\/freedesktop\/DBus\" \"org.freedesktop.DBus\" \"ListNames\")
  &#x20;       &#x7b; methodCallDestination = Just \"org.freedesktop.DBus\"
  &#x20;       &#x7d;
  &#x20;
  &#x20;   -- org.freedesktop.DBus.ListNames() returns a single value, which is
  &#x20;   -- a list of names (here represented as [String])
  &#x20;   let Just names = fromVariant (methodReturnBody reply !! 0)
  &#x20;
  &#x20;   -- Print each name on a line, sorted so reserved names are below
  &#x20;   -- temporary names.
  &#x20;   mapM_ putStrLn (sort names)
  @
  .
  >$ ghc --make list-names.hs
  >$ ./list-names
  >:1.0
  >:1.1
  >:1.10
  >:1.106
  >:1.109
  >:1.110
  >ca.desrt.dconf
  >org.freedesktop.DBus
  >org.freedesktop.Notifications
  >org.freedesktop.secrets
  >org.gnome.ScreenSaver


extra-source-files:
  examples/dbus-monitor.hs
  examples/export.hs
  examples/introspect.hs
  examples/list-names.hs
  idlxml/dbus.xml

source-repository head
  type: git
  location: https://github.com/rblaze/haskell-dbus

library
  default-language: Haskell2010
  ghc-options: -W -Wall
  hs-source-dirs: lib

  build-depends:
      base >=4.16 && <5
    , bytestring < 0.13
    , cereal < 0.6
    , conduit >= 1.3.0 && < 1.4
    , containers < 0.8
    , deepseq < 1.6
    , exceptions < 0.11
    , filepath < 1.6
    , lens < 5.4
    , network >= 3.2 && < 3.3
    , parsec < 3.2
    , random < 1.4
    , split < 0.3
    , template-haskell >= 2.18 && < 2.24
    , text < 2.2
    , th-lift < 0.9
    , transformers < 0.7
    , unix < 2.9
    , vector < 0.14
    , xml-conduit >= 1.9.0.0 && < 1.11.0.0
    , xml-types < 0.4

  exposed-modules:
    DBus
    DBus.Client
    DBus.Generation
    DBus.Internal.Address
    DBus.Internal.Message
    DBus.Internal.Types
    DBus.Internal.Wire
    DBus.Introspection
    DBus.Introspection.Parse
    DBus.Introspection.Render
    DBus.Introspection.Types
    DBus.Socket
    DBus.TH
    DBus.Transport

test-suite dbus_tests
  type: exitcode-stdio-1.0
  main-is: DBusTests.hs
  hs-source-dirs: tests
  default-language: Haskell2010
  ghc-options: -W -Wall -fno-warn-orphans

  build-depends:
      dbus
    , base >=4 && <5
    , bytestring < 0.13
    , cereal < 0.6
    , containers < 0.8
    , directory < 1.4
    , extra < 1.9
    , filepath < 1.6
    , network >= 3.2 && < 3.3
    , parsec < 3.2
    , process < 1.7
    , QuickCheck < 2.17
    , random < 1.4
    , resourcet < 1.4
    , tasty < 1.6
    , tasty-hunit < 0.11
    , tasty-quickcheck < 0.12
    , temporary >= 1.3 && < 1.4
    , text < 2.2
    , transformers < 0.7
    , unix < 2.9
    , vector < 0.14

  other-modules:
    DBusTests.Address
    DBusTests.BusName
    DBusTests.Client
    DBusTests.ErrorName
    DBusTests.Generation
    DBusTests.Integration
    DBusTests.InterfaceName
    DBusTests.Introspection
    DBusTests.MemberName
    DBusTests.Message
    DBusTests.ObjectPath
    DBusTests.Serialization
    DBusTests.Signature
    DBusTests.Socket
    DBusTests.TH
    DBusTests.Transport
    DBusTests.Util
    DBusTests.Variant
    DBusTests.Wire