{ config, lib, pkgs, ... }: let cfg = config.hive.programs.spotify-shortcuts; in { options.hive.programs.spotify-shortcuts = { enable = lib.mkEnableOption "Enable Spotify Shortcuts"; clientIdSopsKey = lib.mkOption { type = lib.types.singleLineStr; description = "Spotify API Client ID sops secret name"; }; clientSecretSopsKey = lib.mkOption { type = lib.types.singleLineStr; description = "Spotify API Client Secret Path sops secret name"; }; }; config = lib.mkIf cfg.enable { environment.systemPackages = [pkgs.hive.spotify-shortcuts]; environment.variables = { SPOTIFY_SHORTCUTS_CONFIG = config.sops.templates."spotify-shortcuts-client.json".path; }; sops.templates."spotify-shortcuts-client.json" = { mode = "444"; content = '' { "clientId": "${config.sops.placeholder.${cfg.clientIdSopsKey}}", "clientSecret": "${config.sops.placeholder.${cfg.clientSecretSopsKey}}" } ''; }; }; }