parent
9907e1e019
commit
6a4f471824
7 changed files with 52 additions and 74 deletions
|
@ -68,7 +68,7 @@ in {
|
|||
wantedBy = ["multi-user.target"];
|
||||
|
||||
environment = {
|
||||
KAPOWARR_PORT = toString cfg.port;
|
||||
KAPOWARR_DEFAULT_PORT = toString cfg.port;
|
||||
KAPOWARR_LOG_DIR = cfg.logDir;
|
||||
KAPOWARR_STATE_DIR = cfg.dataDir;
|
||||
KAPOWARR_DOWNLOAD_DIR = cfg.downloadDir;
|
||||
|
|
18
flake.lock
generated
18
flake.lock
generated
|
@ -1,5 +1,22 @@
|
|||
{
|
||||
"nodes": {
|
||||
"Kapowarr-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743470007,
|
||||
"narHash": "sha256-BSf3wx789Gg/OwGM9sIrxIsphh06s1x18VRmJ5S5P9w=",
|
||||
"owner": "matt1432",
|
||||
"repo": "Kapowarr",
|
||||
"rev": "08e7eacf410c3141513680688d09b4e51600caf5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "matt1432",
|
||||
"ref": "build-system",
|
||||
"repo": "Kapowarr",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ags": {
|
||||
"inputs": {
|
||||
"astal": [
|
||||
|
@ -1567,6 +1584,7 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"Kapowarr-src": "Kapowarr-src",
|
||||
"ags": "ags",
|
||||
"astal": "astal",
|
||||
"bat-theme-src": "bat-theme-src",
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
# Do not modify! This file is generated.
|
||||
{
|
||||
inputs = {
|
||||
Kapowarr-src = {
|
||||
flake = false;
|
||||
owner = "matt1432";
|
||||
ref = "build-system";
|
||||
repo = "Kapowarr";
|
||||
type = "github";
|
||||
};
|
||||
ags = {
|
||||
inputs = {
|
||||
astal.follows = "astal";
|
||||
|
|
|
@ -321,6 +321,14 @@ let
|
|||
}
|
||||
|
||||
# Overlays & packages
|
||||
{
|
||||
name = "Kapowarr-src";
|
||||
owner = "matt1432";
|
||||
repo = "Kapowarr";
|
||||
ref = "build-system";
|
||||
# type = "path";
|
||||
# path = "/home/matt/git/Kapowarr";
|
||||
}
|
||||
{
|
||||
type = "gitlab";
|
||||
owner = "rogs";
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
jmusicbot = final.callPackage ./jmusicbot {};
|
||||
|
||||
kapowarr = import ./kapowarr final;
|
||||
kapowarr = import ./kapowarr (final // inputs);
|
||||
|
||||
komf = final.callPackage ./komf {};
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
# nix build inputs
|
||||
python3Packages,
|
||||
Kapowarr-src,
|
||||
...
|
||||
}: let
|
||||
pyPkgs = python3Packages.override {
|
||||
|
@ -10,4 +11,4 @@
|
|||
};
|
||||
};
|
||||
in
|
||||
pyPkgs.callPackage ./kapowarr {}
|
||||
pyPkgs.callPackage ./kapowarr {inherit Kapowarr-src;}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# nix build inputs
|
||||
lib,
|
||||
buildPythonApplication,
|
||||
fetchFromGitHub,
|
||||
Kapowarr-src,
|
||||
python,
|
||||
# deps
|
||||
rar,
|
||||
|
@ -21,51 +21,43 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib) getExe;
|
||||
inherit (builtins) fromTOML readFile;
|
||||
|
||||
pyproject = fromTOML (readFile "${Kapowarr-src}/pyproject.toml");
|
||||
|
||||
pname = "kapowarr";
|
||||
version = "1.1.1+pkG4o8O";
|
||||
version = "${pyproject.project.version}+${Kapowarr-src.shortRev or "dirty"}";
|
||||
in
|
||||
buildPythonApplication {
|
||||
inherit pname version;
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Casvt";
|
||||
repo = "Kapowarr";
|
||||
rev = "a97f907555bf02d5e737812bfa5c189d8cc639ba";
|
||||
hash = "sha256-pkG4o8OfLu02M50JSnbrBDNiwnbYEJNutoutwBcLFwU=";
|
||||
};
|
||||
src = Kapowarr-src;
|
||||
|
||||
postPatch = ''
|
||||
# TODO: makes sure this works
|
||||
substituteInPlace ./backend/implementations/converters.py \
|
||||
substituteInPlace ./src/backend/implementations/converters.py \
|
||||
--replace-fail \
|
||||
"exe = folder_path('backend', 'lib', Constants.RAR_EXECUTABLES[platform])" \
|
||||
"exe = '${getExe rar}'"
|
||||
|
||||
# Insert import for following substituteInPlace
|
||||
sed -i '/# -\*- coding: utf-8 -\*-/a from os import environ' ./backend/base/logging.py
|
||||
sed -i '/# -\*- coding: utf-8 -\*-/a from os import environ' ./src/backend/base/logging.py
|
||||
|
||||
substituteInPlace ./backend/base/logging.py --replace-fail \
|
||||
substituteInPlace ./src/backend/base/logging.py --replace-fail \
|
||||
"return folder_path(Constants.LOGGER_FILENAME)" \
|
||||
"return f\"{environ.get('KAPOWARR_LOG_DIR')}/{Constants.LOGGER_FILENAME}\""
|
||||
"return f\"{environ.get('KAPOWARR_LOG_DIR') or folder_path(*Constants.DB_FOLDER)}/{Constants.LOGGER_FILENAME}\""
|
||||
|
||||
sed -i '/from __future__ import annotations/a from os import environ' ./backend/internals/db.py
|
||||
sed -i '/from __future__ import annotations/a from os import environ' ./src/backend/internals/db.py
|
||||
|
||||
substituteInPlace ./backend/internals/db.py --replace-fail \
|
||||
substituteInPlace ./src/backend/internals/db.py --replace-fail \
|
||||
"db_folder or folder_path(*Constants.DB_FOLDER)" \
|
||||
"environ.get('KAPOWARR_STATE_DIR')"
|
||||
"environ.get('KAPOWARR_STATE_DIR') or folder_path(*Constants.DB_FOLDER)"
|
||||
|
||||
substituteInPlace ./backend/internals/settings.py \
|
||||
--replace-fail \
|
||||
"from os import urandom" \
|
||||
"from os import urandom, environ" \
|
||||
--replace-fail \
|
||||
"port: int = 5656" \
|
||||
"port: int = int(environ.get('KAPOWARR_PORT'))" \
|
||||
substituteInPlace ./src/backend/internals/settings.py \
|
||||
--replace-fail \
|
||||
"download_folder: str = folder_path('temp_downloads')" \
|
||||
"download_folder: str = environ.get('KAPOWARR_DOWNLOAD_DIR')"
|
||||
"download_folder: str = environ.get('KAPOWARR_DOWNLOAD_DIR') or folder_path('temp_downloads')"
|
||||
'';
|
||||
|
||||
build-system = [setuptools];
|
||||
|
@ -83,48 +75,6 @@ in
|
|||
websocket-client
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
sed -i "s/bs4.*/beautifulsoup4 ~= 4.12.3/" requirements.txt
|
||||
|
||||
cat >> pyproject.toml << EOF
|
||||
|
||||
[build-system]
|
||||
build-backend = "setuptools.build_meta"
|
||||
requires = ["setuptools"]
|
||||
|
||||
[project]
|
||||
name = "${pname}"
|
||||
version = "${version}"
|
||||
dynamic = [ "dependencies", "optional-dependencies" ]
|
||||
|
||||
[tool.setuptools]
|
||||
script-files = ["Kapowarr.py"]
|
||||
|
||||
py-modules = [
|
||||
"Kapowarr",
|
||||
]
|
||||
|
||||
packages = [
|
||||
"frontend",
|
||||
"frontend.static",
|
||||
"backend",
|
||||
"backend.base",
|
||||
"backend.features",
|
||||
"backend.implementations",
|
||||
"backend.implementations.direct_clients",
|
||||
"backend.implementations.torrent_clients",
|
||||
"backend.internals",
|
||||
"backend.lib",
|
||||
]
|
||||
|
||||
package-data."frontend" = [ "templates/*" ]
|
||||
package-data."frontend.static" = [ "css/*", "img/*", "js/*", "json/*" ]
|
||||
|
||||
dynamic."dependencies".file = "requirements.txt"
|
||||
dynamic."optional-dependencies".dev.file = "requirements-dev.txt"
|
||||
EOF
|
||||
'';
|
||||
|
||||
# Use XDG-ish dirs for configuration. These would otherwise be in the kapowarr package.
|
||||
#
|
||||
# Using --run as `makeWrapper` evaluates variables for --set and --set-default at build
|
||||
|
@ -132,7 +82,6 @@ in
|
|||
# But using --run allows setting default vars that are evaluated on run and not during
|
||||
# build time.
|
||||
makeWrapperArgs = [
|
||||
"--set-default KAPOWARR_PORT 5656"
|
||||
''
|
||||
--run "OUTDIR=\"$out\""
|
||||
--run '
|
||||
|
@ -149,11 +98,6 @@ in
|
|||
''
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
# I prefer a clean name for the executable
|
||||
mv $out/bin/Kapowarr.py $out/bin/${pname}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
inherit (rar.meta) platforms;
|
||||
mainProgram = pname;
|
||||
|
|
Loading…
Add table
Reference in a new issue