From 8b9fa0ef8047861ca1b8959afdf8079b39a64d53 Mon Sep 17 00:00:00 2001 From: KeksNino Date: Wed, 29 Jul 2026 20:44:21 +0200 Subject: [PATCH] add nix package --- flake.nix | 2 + package.nix | 32 +++++++++++ python-packages.nix | 128 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 162 insertions(+) create mode 100644 package.nix create mode 100644 python-packages.nix diff --git a/flake.nix b/flake.nix index 3654105..82dabca 100644 --- a/flake.nix +++ b/flake.nix @@ -16,6 +16,8 @@ in { + packages.${system}.default = pkgs.callPackage ./package.nix { }; + devShells.x86_64-linux.default = pkgs.mkShell { packages = [ diff --git a/package.nix b/package.nix new file mode 100644 index 0000000..f6bd4f3 --- /dev/null +++ b/package.nix @@ -0,0 +1,32 @@ +{ pkgs }: + +pkgs.python3Packages.buildPythonApplication rec { + pname = "free_bandcamp_downloader"; + version = "0.5.1"; + pyproject = true; + + python = pkgs.python3.override { + packageOverrides = pkgs.callPackage ./python-packages.nix { }; + }; + + src = ./.; + + nativeBuildInputs = with python.pkgs; [ + setuptools + wheel + ]; + + propagatedBuildInputs = with pkgs.python3Packages; [ + beautifulsoup4 + tqdm + docopt-ng + python.pkgs.pyrfc6266 + python.pkgs.python-guerrillamail + ]; + + # dontUnpack = true; + # installPhase = '' + # mkdir -p "$out/${python.sitePackages}" + # cp -r "${./${pname}}" "${python.sitePackages}/${pname}" + # ''; +} diff --git a/python-packages.nix b/python-packages.nix new file mode 100644 index 0000000..793a656 --- /dev/null +++ b/python-packages.nix @@ -0,0 +1,128 @@ +# Generated by pip2nix 0.8.0.dev1 +# See https://github.com/nix-community/pip2nix + +{ pkgs, fetchurl, fetchgit, fetchhg }: + +self: super: { + "certifi" = super.buildPythonPackage rec { + pname = "certifi"; + version = "2026.7.22"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl"; + sha256 = "0x9p90l2k6ccprp1mgg7ialf5mx8i1jp0srb980k66lanm12gwk2"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "charset-normalizer" = super.buildPythonPackage rec { + pname = "charset-normalizer"; + version = "3.4.9"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/bd/2a/23f34ec9d04624958e137efdc394888716353190e75f25dd22c7a2c7a8aa/charset_normalizer-3.4.9.tar.gz"; + sha256 = "0yxfqcbnkivs6hgl3b4w6f812l5axbfjiw5hq2z1021zsjxi2dk7"; + }; + format = "setuptools"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "idna" = super.buildPythonPackage rec { + pname = "idna"; + version = "3.18"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl"; + sha256 = "18j9x2fnijkp81f9ha1rpjldlprybi7y2zgqwdaq0s0bfaz2r5bz"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "pyparsing" = super.buildPythonPackage rec { + pname = "pyparsing"; + version = "3.0.9"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/6c/10/a7d0fa5baea8fe7b50f448ab742f26f52b80bfca85ac2be9d35cdd9a3246/pyparsing-3.0.9-py3-none-any.whl"; + sha256 = "1g3b426kswh9ndjdlkpf9ba0fhwz5c2hjbxb3nvfzshfl7lvl9jh"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "pyrfc6266" = super.buildPythonPackage rec { + pname = "pyrfc6266"; + version = "1.0.2"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/69/fc/d416c1bfb54f86259f631fd9ff6a9b813f7050129a377d94c43500109479/pyrfc6266-1.0.2-py3-none-any.whl"; + sha256 = "0ggp5ky6cids94a23as01hz3qjgymvgpfxd9vcvz6rlm65zk0ch5"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."pyparsing" + ]; + }; + "python-guerrillamail" = super.buildPythonPackage rec { + pname = "python-guerrillamail"; + version = "0.2.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/0c/76/7f384d3aec93ae9ceaeef70a10c1ceaa5be9b039b34fd60df570be49f0fd/python_guerrillamail-0.2.0-py2.py3-none-any.whl"; + sha256 = "1xgz5810w6hj6livhjz2qggapb336pgyw00blzwc196vkk838fcr"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."requests" + ]; + }; + "requests" = super.buildPythonPackage rec { + pname = "requests"; + version = "2.32.5"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl"; + sha256 = "1dpz38b6lnn8fcad7kfiagagbc3djy3f35a24qrdakx36x3gjqi4"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."certifi" + self."charset-normalizer" + self."idna" + self."urllib3" + ]; + }; + "urllib3" = super.buildPythonPackage rec { + pname = "urllib3"; + version = "2.6.3"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl"; + sha256 = "1m5cn1yd6gvd8dax7fyp36wngx5hlxf25zcvgplb5pskwlij69xz"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; +}