From 4128141cb73dcb93bfa880415945662d3d6c65ad Mon Sep 17 00:00:00 2001
From: matt1432 <matt@nelim.org>
Date: Sat, 22 Mar 2025 16:36:57 -0400
Subject: [PATCH] refactor(coloryou): properly package with hatchling

---
 packages/coloryou/default.nix    | 33 ++++++++++++++++++--------------
 packages/coloryou/pyproject.toml | 11 +++++++----
 packages/coloryou/setup.py       |  5 -----
 packages/default.nix             |  2 +-
 4 files changed, 27 insertions(+), 24 deletions(-)
 delete mode 100644 packages/coloryou/setup.py

diff --git a/packages/coloryou/default.nix b/packages/coloryou/default.nix
index 74267ae9..72051b64 100644
--- a/packages/coloryou/default.nix
+++ b/packages/coloryou/default.nix
@@ -1,25 +1,30 @@
-{python3Packages, ...}: let
-  inherit (builtins.fromTOML (builtins.readFile ./pyproject.toml)) project;
+{
+  # nix build inputs
+  lib,
+  buildPythonApplication,
+  # deps
+  hatchling,
+  material-color-utilities,
+  ...
+}: let
+  inherit (builtins) fromTOML readFile;
+
+  inherit (fromTOML (readFile ./pyproject.toml)) project;
 in
-  python3Packages.buildPythonPackage {
+  buildPythonApplication rec {
     pname = project.name;
     inherit (project) version;
-    pyproject = true;
+    format = "pyproject";
 
     src = ./.;
 
-    nativeBuildInputs = with python3Packages; [
-      setuptools
-    ];
-
-    propagatedBuildInputs = with python3Packages; [material-color-utilities];
-
-    postInstall = ''
-      mv -v $out/bin/coloryou.py $out/bin/coloryou
-    '';
+    build-system = [hatchling];
+    dependencies = [material-color-utilities];
 
     meta = {
-      inherit (project) description;
+      mainProgram = pname;
+      license = lib.licenses.mit;
       homepage = "https://git.nelim.org/matt1432/nixos-configs/src/branch/master/packages/coloryou";
+      inherit (project) description;
     };
   }
diff --git a/packages/coloryou/pyproject.toml b/packages/coloryou/pyproject.toml
index 20797f44..8e304d00 100644
--- a/packages/coloryou/pyproject.toml
+++ b/packages/coloryou/pyproject.toml
@@ -1,7 +1,3 @@
-[build-system]
-requires = ["setuptools"]
-build-backend = "setuptools.build_meta"
-
 [project]
 name = "coloryou"
 description="Get Material You colors from an image."
@@ -10,3 +6,10 @@ version = "0.1.0"
 dependencies = [
     "material_color_utilities_python",
 ]
+
+[build-system]
+requires = ["hatchling"]
+build-backend = "hatchling.build"
+
+[project.scripts]
+coloryou = "coloryou:main"
diff --git a/packages/coloryou/setup.py b/packages/coloryou/setup.py
deleted file mode 100644
index 219405df..00000000
--- a/packages/coloryou/setup.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from distutils.core import setup
-
-setup(
-    scripts=['coloryou.py',],
-)
diff --git a/packages/default.nix b/packages/default.nix
index a65a411a..8ea6ce80 100644
--- a/packages/default.nix
+++ b/packages/default.nix
@@ -4,7 +4,7 @@
   ...
 }: (final: prev: {
   selfPackages = {
-    coloryou = final.callPackage ./coloryou {};
+    coloryou = final.python3Packages.callPackage ./coloryou {};
 
     fcft = final.callPackage ./fcft {};