# kordophoned

This is the client Kordophone daemon. It exposes a dbus interface for accessing the caching layer, handles the update cycle, etc. 

# Building RPM

Make sure cargo-generate-rpm is installed, `cargo install cargo-generate-rpm`. 

Then:

```
cargo build --release
strip -s target/release/kordophoned
cargo generate-rpm
```

# Building DEB

Make sure cargo-deb is installed, `cargo install cargo-deb`.

Then:

```bash
cd core
cargo deb -p kordophoned
```

## Running on macOS

Before any client can talk to the kordophone daemon on macOS, the XPC service needs to be manually registered with launchd. 

- Register using `launchctl load net.buzzert.kordophonecd.plist`

Plans are to embed this into the app executable, which would then not need to be manually registered (only via the following Swift code):

```swift
try? SMAppService.agent(plistName: "net.buzzert.kordophonecd.plist").register()
```

and the following in Info.plist:

```xml
<key>Label</key><string>net.buzzert.kordophonecd</string>
<key>BundleProgram</key><string>Contents/MacOS/kordophoned</string>
<key>MachServices</key><dict><key>net.buzzert.kordophonecd</key><true/></dict>
<key>KeepAlive</key><true/>
```
