From 3db530e26b548c08b5763c9c5206c89a5a09e0a0 Mon Sep 17 00:00:00 2001
From: NullBite <me@nullbite.com>
Date: Thu, 7 Mar 2024 06:59:45 +0000
Subject: [PATCH] flake: make packages more modular

---
 flake.nix                                             |  3 ++-
 pkgs/default.nix                                      | 11 +++++++----
 .../default.nix => mopidy/autoplay.nix}               |  0
 pkgs/mopidy/default.nix                               | 10 ++++++++++
 4 files changed, 19 insertions(+), 5 deletions(-)
 rename pkgs/{mopidy-autoplay/default.nix => mopidy/autoplay.nix} (100%)
 create mode 100644 pkgs/mopidy/default.nix

diff --git a/flake.nix b/flake.nix
index 03a4f68..991dcab 100644
--- a/flake.nix
+++ b/flake.nix
@@ -194,7 +194,8 @@
     # (extraS|s)pecialArgs to pass variables
     nixosModules = (import ./modules/nixos) moduleInputs;
     homeManagerModules = (import ./modules/home-manager) moduleInputs;
-    packages = eachSystem (system: import ./pkgs { inherit nixpkgs system; });
+    packages = eachSystem (system: let pkgs = import nixpkgs { inherit system; };
+      in import ./pkgs { inherit pkgs; });
     apps = eachSystem (system: import ./pkgs/apps.nix
       { inherit (self.outputs) packages; inherit system; });
 
diff --git a/pkgs/default.nix b/pkgs/default.nix
index f6eebbc..a3aa0be 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,11 +1,14 @@
-{ nixpkgs, system, ... }:
+{ pkgs, ... }:
 let
-  pkgs = import nixpkgs { inherit system; };
-  inherit (pkgs) callPackage;
+  inherit (pkgs) callPackage callPackages;
+
+  mopidyPackages = callPackages ./mopidy {
+    python = pkgs.python3;
+  };
 in
 {
+  inherit (mopidyPackages) mopidy-autoplay ;
   google-fonts = callPackage ./google-fonts { };
   wm-helpers = callPackage ./wm-helpers { };
   atool = callPackage ./atool-wrapped { };
-  mopidy-autoplay = callPackage ./mopidy-autoplay { };
 }
diff --git a/pkgs/mopidy-autoplay/default.nix b/pkgs/mopidy/autoplay.nix
similarity index 100%
rename from pkgs/mopidy-autoplay/default.nix
rename to pkgs/mopidy/autoplay.nix
diff --git a/pkgs/mopidy/default.nix b/pkgs/mopidy/default.nix
new file mode 100644
index 0000000..3a996d3
--- /dev/null
+++ b/pkgs/mopidy/default.nix
@@ -0,0 +1,10 @@
+{ lib, newScope, python }:
+
+# i have no idea what this is but there's some conflict if i don't do this
+# based on https://github.com/NixOS/nixpkgs/blob/77f0d2095a8271fdb6e0d08c90a7d93631fd2748/pkgs/applications/audio/mopidy/default.nix
+lib.makeScope newScope (self: with self; {
+  inherit python;
+  pythonPackages = python.pkgs;
+
+  mopidy-autoplay = callPackage ./autoplay.nix { };
+})