Tests that read ../../../mesh-catalog or ../../../mesh-host gave a verdict that depended on what sat beside the checkout: a stale or dirty sibling failed them on a desktop, and a missing one skipped them unseen. They now read the clone the build seat puts in MESH_CHECK_BESIDE, failing when it is absent there, and elsewhere a copy captured at a named commit. The skip had hidden that the builder test read a module retired by ADR 0190. The systemd reading test no longer counts the machine's own environment.d.
74 lines
2.3 KiB
Plaintext
74 lines
2.3 KiB
Plaintext
{
|
|
"module": "triggerhappy",
|
|
"version": "1",
|
|
"capabilities": [
|
|
"service-manager"
|
|
],
|
|
"claims": [
|
|
{
|
|
"name": "node-hotkeys",
|
|
"scope": "node"
|
|
}
|
|
],
|
|
"tools": [
|
|
"triggerhappy_keys",
|
|
"triggerhappy_devices",
|
|
"triggerhappy_dump",
|
|
"triggerhappy_check"
|
|
],
|
|
"resources": [
|
|
{
|
|
"id": "drop-ins",
|
|
"type": "directory",
|
|
"path": "/etc/systemd/system/triggerhappy.service.d",
|
|
"mode": "0755"
|
|
},
|
|
{
|
|
"id": "as-account",
|
|
"type": "file",
|
|
"path": "/etc/systemd/system/triggerhappy.service.d/mesh.conf",
|
|
"mode": "0644",
|
|
"content": "# Written by the mesh (module triggerhappy, novox/hq ADR 0212). Replaced on every push.\n#\n# The daemon opens the input devices as root, then drops to the operator's account with its groups,\n# so every trigger runs as the account: it reaches the account's session bus and display, with no su\n# and no hard-coded user. Only the mesh's trigger file is read.\n[Service]\nExecStart=\nExecStart=/usr/bin/thd --triggers /etc/triggerhappy/triggers.d/mesh.conf --socket /run/thd.socket --user ${machine:account} --deviceglob /dev/input/event*\n"
|
|
},
|
|
{
|
|
"id": "triggers-dir",
|
|
"type": "directory",
|
|
"path": "/etc/triggerhappy/triggers.d",
|
|
"mode": "0755"
|
|
},
|
|
{
|
|
"id": "triggers",
|
|
"type": "file",
|
|
"path": "/etc/triggerhappy/triggers.d/mesh.conf",
|
|
"mode": "0644",
|
|
"content": "# The machine's hotkeys, written by the mesh (module triggerhappy, novox/hq ADR 0212). Replaced on\n# every push: a key is added by the module it belongs to, as a contribution to node-hotkeys.\n# A line is: the key, its state (1 pressed, 2 held, 0 released), the command.\n${contribution:node-hotkeys:trigger}"
|
|
},
|
|
{
|
|
"id": "service",
|
|
"type": "service",
|
|
"unit": "triggerhappy.service",
|
|
"state": "running",
|
|
"boot": "enabled",
|
|
"restart-on": [
|
|
"as-account",
|
|
"triggers"
|
|
]
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/triggerhappy-tools",
|
|
"binary": "triggerhappy-tools",
|
|
"loads": [
|
|
"triggerhappy-tools"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|