beaconctl

Command-line interface for controlling the beacond signal daemon.

beaconctl is a command-line interface for the beacond signal daemon. It provides access to all daemon operations from the terminal or shell scripts.

Functionality

The tool supports these operations:

  • Activate and deactivate signals
  • Query signal information and current state
  • List all available signals
  • Monitor signal events in real-time
  • Connect to session bus, system bus, or custom DBus addresses

Usage Examples

# Activate a signal
obscurity-beaconctl activate warning

# Check signal status
obscurity-beaconctl get-info warning

# List all available signals
obscurity-beaconctl list

# Monitor events in real-time
obscurity-beaconctl monitor

# Connect to system bus
obscurity-beaconctl --bus system list

# Use a custom DBus address
obscurity-beaconctl --bus-address unix:path=/tmp/dbus.sock activate emergency

Scripting

The tool can be used in shell scripts and automation. Exit codes follow Unix conventions for error handling:

#!/bin/bash
# Example deployment script

obscurity-beaconctl --bus system activate deployment

# Perform deployment tasks
deploy_application.sh

obscurity-beaconctl --bus system deactivate deployment
obscurity-beaconctl --bus system activate ready

Implementation

  • Self-contained binary with no runtime dependencies
  • Built with Rust using the beaconc client library
  • Minimal resource usage suitable for embedded systems
  • Uses clap for argument parsing

Current Status

Feature-complete - All signal operations are implemented. The tool supports interactive use and script automation.

Use Cases

The tool is useful for:

  • Development and debugging of beacond integrations
  • System startup scripts to set initial signal states
  • Manual signal control via SSH or terminal
  • Deployment automation and CI/CD pipelines
  • Integration testing of signal coordination

Tech Stack

  • Rust with clap for argument parsing
  • tokio for async runtime
  • Built on obscurity-beaconc client library
  • Target: Embedded Linux environments

Skills & Technologies