This repository includes a small Nix flake that uses Crane to build a CLI, server, service, and TUI, and exposes a NixOS module to run them separately.
| Output | Description |
|---|---|
cli |
Command-line interface |
bh-server |
Soulseek server |
bh-service |
Service layer (talks to server) |
bldhnd |
Terminal UI |
fz |
Fuzzy finder |
nix build .#bh-server # Server
nix build .#bh-service # Service
nix build .#bldhnd # TUI
nix build .#cli # CLI# Server
nix build .#bh-server
./result/bin/bh-server &
# Service (connects to server)
nix build .#bh-service
./result/bin/bh-service &
# TUI (connects to service)
nix build .#bldhnd
./result/bin/bldhndEnable the server, service, and TUI separately:
{
imports = [ (builtins.getFlake (toString ./.)).nixosModules.bldhnd ];
services.bldhnd-server.enable = true;
services.bldhnd-service.enable = true;
programs.bldhnd.enable = true;
}Each component has an optional package attribute if you need to override the default.
nix run github:tascord/bldhnd -- --help
nix build github:tascord/bldhnd#packages.x86_64-linux.cliRequires Rust 1.85+ and pkg-config.
cargo build --release -p bldhnd # TUI
cargo build --release -p bh-server # Server
cargo build --release -p bh-service # ServiceSee the GitHub Releases page for pre-built binaries.
On non-NixOS systems with Nix installed, enable flakes and install to your user profile:
nix profile install github:tascord/bldhnd#packages.x86_64-linux.cli
bldhndOr build locally:
nix build .#packages.x86_64-linux.cli
./result/bin/bldhnd