This commit prepares the musiclink bot for production deployment on NixOS. Changes: - Refactored service layer to support Dependency Injection for API URLs. - Added 'internal/bot/bot_integration_test.go' for mock-based integration testing. - Added 'flake.nix' and 'flake.lock' for reproducible Nix builds. - Added 'README.md', 'LICENSE', and '.gitignore'. - Verified build and tests pass locally.
44 lines
1.1 KiB
Nix
44 lines
1.1 KiB
Nix
{
|
|
description = "MusicLink Bot - A link converter sidecar for Matterbridge";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, utils }:
|
|
utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = import nixpkgs { inherit system; };
|
|
in
|
|
{
|
|
packages.default = pkgs.buildGoModule {
|
|
pname = "musiclink";
|
|
version = "0.1.0";
|
|
src = ./.;
|
|
|
|
# Run 'nix build' and update this hash if dependencies change
|
|
vendorHash = "sha256-Upjt0Q2G6x5vGf0bG0TS9uWrHBow8/cQsZexhMgVb2I=";
|
|
|
|
subPackages = [ "cmd/musiclink" ];
|
|
|
|
meta = with pkgs.lib; {
|
|
description = "Music link converter bot for Matterbridge";
|
|
homepage = "https://github.com/dan/musiclink";
|
|
license = licenses.mit;
|
|
maintainers = [ ];
|
|
};
|
|
};
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
go
|
|
gopls
|
|
gotools
|
|
matterbridge
|
|
];
|
|
};
|
|
}
|
|
);
|
|
}
|