-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathdbus.cabal
172 lines (162 loc) · 4.23 KB
/
dbus.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
name: dbus
version: 1.3.10
license: Apache-2.0
license-file: license.txt
author: John Millikin <[email protected]>
maintainer: Andrey Sverdlichenko <[email protected]>
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.
.
@
{-\# LANGUAGE OverloadedStrings \#-}
.
import Data.List (sort)
import DBus
import DBus.Client
.
main = do
  client <- connectSession
 
  -- Request a list of connected clients from the bus
  reply <- call_ client (methodCall \"\/org\/freedesktop\/DBus\" \"org.freedesktop.DBus\" \"ListNames\")
  { methodCallDestination = Just \"org.freedesktop.DBus\"
  }
 
  -- org.freedesktop.DBus.ListNames() returns a single value, which is
  -- a list of names (here represented as [String])
  let Just names = fromVariant (methodReturnBody reply !! 0)
 
  -- Print each name on a line, sorted so reserved names are below
  -- temporary names.
  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.23
, text < 2.2
, th-lift < 0.9
, transformers < 0.7
, unix < 2.9
, vector < 0.14
, xml-conduit >= 1.9.0.0 && < 1.10.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.16
, 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