Files
metadata-agregator/flake.nix
T
Alexander a1f6701bac feat: initial implementation of metadata aggregator
- gRPC service with MusicBrainz provider
- PostgreSQL schema with migrations
- Service layer with database-first caching
- Repository pattern for data access
- YAML configuration support
- Research documentation for 17 music metadata projects
2026-04-28 16:28:53 +02:00

89 lines
1.8 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs";
flake-parts.url = "github:hercules-ci/flake-parts";
git-hooks.url = "github:cachix/git-hooks.nix";
};
outputs =
{
self,
nixpkgs,
flake-parts,
git-hooks,
...
}@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"x86_64-linux"
];
perSystem =
{
system,
...
}:
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
pre-commit-check = git-hooks.lib.${system}.run {
src = ./.;
hooks = {
nixfmt.enable = true;
gofmt.enable = true;
};
};
metadata-server = pkgs.buildGoModule {
pname = "metadata-server";
version = "0.1.0";
src = ./.;
vendorHash = null;
subPackages = [ "cmd/server" ];
meta = {
description = "Music metadata aggregation gRPC service";
mainProgram = "server";
};
};
in
{
formatter = pkgs.nixfmt-tree;
packages = {
default = metadata-server;
server = metadata-server;
};
checks = {
inherit pre-commit-check;
};
devShells.default = pkgs.mkShell {
inherit (pre-commit-check) shellHook;
buildInputs = with pkgs; [
pre-commit
gitleaks
plantuml
go
gopls
gotools
go-tools
golangci-lint
buf
protoc-gen-go
protoc-gen-go-grpc
grpcurl
];
};
};
};
}