parent
8193a7db1e
commit
0b20a92ac8
10 changed files with 49 additions and 180 deletions
configurations/nos/modules/comics/kapowarr
flake.lockflake.nixinputs
packages
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
kapowarr,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
@ -19,7 +20,7 @@
|
||||||
in {
|
in {
|
||||||
options.services.kapowarr = {
|
options.services.kapowarr = {
|
||||||
enable = mkEnableOption "kapowarr";
|
enable = mkEnableOption "kapowarr";
|
||||||
package = mkPackageOption pkgs.selfPackages "kapowarr" {};
|
package = mkPackageOption pkgs "kapowarr" {};
|
||||||
|
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
@ -62,6 +63,10 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
kapowarr.overlays.default
|
||||||
|
];
|
||||||
|
|
||||||
systemd.services.kapowarr = {
|
systemd.services.kapowarr = {
|
||||||
description = "Kapowarr";
|
description = "Kapowarr";
|
||||||
after = ["network.target"];
|
after = ["network.target"];
|
||||||
|
|
43
flake.lock
generated
43
flake.lock
generated
|
@ -1,22 +1,5 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"Kapowarr-src": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745186869,
|
|
||||||
"narHash": "sha256-zqxKKADZLwwQziWHHNhniG6Z+JgKWvEW2c04Obya8bA=",
|
|
||||||
"owner": "matt1432",
|
|
||||||
"repo": "Kapowarr",
|
|
||||||
"rev": "951d2f34ecd91176a4225e56b9f1d4359cff4bad",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "matt1432",
|
|
||||||
"ref": "build-system",
|
|
||||||
"repo": "Kapowarr",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ags": {
|
"ags": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"astal": [
|
"astal": [
|
||||||
|
@ -850,6 +833,30 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"kapowarr": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1745871889,
|
||||||
|
"narHash": "sha256-lqwEbN0dIEMJVYGEZhDl/ZP9p2ClZJStdLg6yWM1q/E=",
|
||||||
|
"owner": "matt1432",
|
||||||
|
"repo": "Kapowarr",
|
||||||
|
"rev": "2a54e959f2cbe4f3f0c3ba79ced17dc510c914e9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "matt1432",
|
||||||
|
"ref": "build-system",
|
||||||
|
"repo": "Kapowarr",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"kompass": {
|
"kompass": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"astal": [
|
"astal": [
|
||||||
|
@ -1605,7 +1612,6 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"Kapowarr-src": "Kapowarr-src",
|
|
||||||
"ags": "ags",
|
"ags": "ags",
|
||||||
"astal": "astal",
|
"astal": "astal",
|
||||||
"bat-theme-src": "bat-theme-src",
|
"bat-theme-src": "bat-theme-src",
|
||||||
|
@ -1631,6 +1637,7 @@
|
||||||
"hyprland-plugins": "hyprland-plugins",
|
"hyprland-plugins": "hyprland-plugins",
|
||||||
"hyprpaper": "hyprpaper",
|
"hyprpaper": "hyprpaper",
|
||||||
"jovian": "jovian",
|
"jovian": "jovian",
|
||||||
|
"kapowarr": "kapowarr",
|
||||||
"kompass": "kompass",
|
"kompass": "kompass",
|
||||||
"lib-aggregate": "lib-aggregate",
|
"lib-aggregate": "lib-aggregate",
|
||||||
"libratbag-src": "libratbag-src",
|
"libratbag-src": "libratbag-src",
|
||||||
|
|
17
flake.nix
17
flake.nix
|
@ -1,13 +1,6 @@
|
||||||
# Do not modify! This file is generated.
|
# Do not modify! This file is generated.
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
Kapowarr-src = {
|
|
||||||
flake = false;
|
|
||||||
owner = "matt1432";
|
|
||||||
ref = "build-system";
|
|
||||||
repo = "Kapowarr";
|
|
||||||
type = "github";
|
|
||||||
};
|
|
||||||
ags = {
|
ags = {
|
||||||
inputs = {
|
inputs = {
|
||||||
astal.follows = "astal";
|
astal.follows = "astal";
|
||||||
|
@ -190,6 +183,16 @@
|
||||||
repo = "Jovian-NixOS";
|
repo = "Jovian-NixOS";
|
||||||
type = "github";
|
type = "github";
|
||||||
};
|
};
|
||||||
|
kapowarr = {
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
systems.follows = "systems";
|
||||||
|
};
|
||||||
|
owner = "matt1432";
|
||||||
|
ref = "build-system";
|
||||||
|
repo = "Kapowarr";
|
||||||
|
type = "github";
|
||||||
|
};
|
||||||
kompass = {
|
kompass = {
|
||||||
inputs = {
|
inputs = {
|
||||||
astal.follows = "astal";
|
astal.follows = "astal";
|
||||||
|
|
|
@ -156,6 +156,14 @@ let
|
||||||
owner = "mateoradman";
|
owner = "mateoradman";
|
||||||
repo = "bazarr-bulk";
|
repo = "bazarr-bulk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
kapowarr = mkInput {
|
||||||
|
owner = "matt1432";
|
||||||
|
repo = "Kapowarr";
|
||||||
|
ref = "build-system";
|
||||||
|
# type = "path";
|
||||||
|
# path = "/home/matt/git/Kapowarr";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
desktopInputs = {
|
desktopInputs = {
|
||||||
|
@ -329,14 +337,6 @@ let
|
||||||
}
|
}
|
||||||
|
|
||||||
# Overlays & packages
|
# Overlays & packages
|
||||||
{
|
|
||||||
name = "Kapowarr-src";
|
|
||||||
owner = "matt1432";
|
|
||||||
repo = "Kapowarr";
|
|
||||||
ref = "build-system";
|
|
||||||
# type = "path";
|
|
||||||
# path = "/home/matt/git/Kapowarr";
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
type = "gitlab";
|
type = "gitlab";
|
||||||
owner = "rogs";
|
owner = "rogs";
|
||||||
|
|
|
@ -12,7 +12,6 @@ This directory contains every derivations for packages exposed by this flake.
|
||||||
| `homepage` | Highly customisable dashboard with Docker and service API integrations. | https://gethomepage.dev |
|
| `homepage` | Highly customisable dashboard with Docker and service API integrations. | https://gethomepage.dev |
|
||||||
| `jdownloader-cli` | Command line interface to JDownloader based on jdownloader-go library. | https://github.com/rkosegi/jdownloader-cli |
|
| `jdownloader-cli` | Command line interface to JDownloader based on jdownloader-go library. | https://github.com/rkosegi/jdownloader-cli |
|
||||||
| `jmusicbot` | Discord music bot that's easy to set up and run yourself | https://github.com/jagrosh/MusicBot |
|
| `jmusicbot` | Discord music bot that's easy to set up and run yourself | https://github.com/jagrosh/MusicBot |
|
||||||
| `kapowarr` | Kapowarr is a software to build and manage a comic book library, fitting in the \*arr suite of software. | https://casvt.github.io/Kapowarr |
|
|
||||||
| `komf` | Komf is a tool that fetches metadata and thumbnails for your digital comic book library. | https://github.com/Snd-R/komf |
|
| `komf` | Komf is a tool that fetches metadata and thumbnails for your digital comic book library. | https://github.com/Snd-R/komf |
|
||||||
| `libratbag` | Configuration library for gaming mice | https://github.com/libratbag/libratbag |
|
| `libratbag` | Configuration library for gaming mice | https://github.com/libratbag/libratbag |
|
||||||
| `librespot-auth` | A simple program for populating a credentials.json via Spotify's zeroconf authentication. | https://github.com/dspearson/librespot-auth |
|
| `librespot-auth` | A simple program for populating a credentials.json via Spotify's zeroconf authentication. | https://github.com/dspearson/librespot-auth |
|
||||||
|
|
|
@ -19,8 +19,6 @@
|
||||||
|
|
||||||
jmusicbot = final.callPackage ./jmusicbot {};
|
jmusicbot = final.callPackage ./jmusicbot {};
|
||||||
|
|
||||||
kapowarr = import ./kapowarr (final // inputs);
|
|
||||||
|
|
||||||
komf = final.callPackage ./komf {};
|
komf = final.callPackage ./komf {};
|
||||||
|
|
||||||
libratbag = final.callPackage ./libratbag {
|
libratbag = final.callPackage ./libratbag {
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
# nix build inputs
|
|
||||||
buildPythonPackage,
|
|
||||||
fetchPypi,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
pname = "bencoding";
|
|
||||||
version = "0.2.6";
|
|
||||||
in
|
|
||||||
buildPythonPackage {
|
|
||||||
inherit pname version;
|
|
||||||
|
|
||||||
src = fetchPypi {
|
|
||||||
inherit pname version;
|
|
||||||
hash = "sha256-Q8zjHUhj4p1rxhFVHU6fJlK+KZXp1eFbRtg4PxgNREA=";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
# nix build inputs
|
|
||||||
python3Packages,
|
|
||||||
Kapowarr-src,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
pyPkgs = python3Packages.override {
|
|
||||||
overrides = pyFinal: pyPrev: {
|
|
||||||
bencoding = pyFinal.callPackage ./bencoding {};
|
|
||||||
typing-extensions = pyFinal.callPackage ./typing-extensions {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
pyPkgs.callPackage ./kapowarr {inherit Kapowarr-src;}
|
|
|
@ -1,89 +0,0 @@
|
||||||
{
|
|
||||||
# nix build inputs
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
python,
|
|
||||||
makeWrapper,
|
|
||||||
Kapowarr-src,
|
|
||||||
# deps
|
|
||||||
rar,
|
|
||||||
# python deps
|
|
||||||
aiohttp,
|
|
||||||
beautifulsoup4,
|
|
||||||
bencoding, # from overrides
|
|
||||||
cryptography,
|
|
||||||
flask,
|
|
||||||
flask-socketio,
|
|
||||||
requests,
|
|
||||||
typing-extensions, # from overrides
|
|
||||||
waitress,
|
|
||||||
websocket-client,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) getExe;
|
|
||||||
inherit (builtins) fromTOML readFile;
|
|
||||||
|
|
||||||
pyproject = fromTOML (readFile "${Kapowarr-src}/pyproject.toml");
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
typing-extensions
|
|
||||||
requests
|
|
||||||
beautifulsoup4
|
|
||||||
flask
|
|
||||||
waitress
|
|
||||||
cryptography
|
|
||||||
bencoding
|
|
||||||
aiohttp
|
|
||||||
flask-socketio
|
|
||||||
websocket-client
|
|
||||||
];
|
|
||||||
|
|
||||||
pythonExe = getExe (python.withPackages (ps: dependencies));
|
|
||||||
|
|
||||||
pname = "kapowarr";
|
|
||||||
version = "${pyproject.project.version}+${Kapowarr-src.shortRev or "dirty"}";
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
inherit pname version;
|
|
||||||
|
|
||||||
src = Kapowarr-src;
|
|
||||||
|
|
||||||
nativeBuildInputs = [makeWrapper];
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
# Remove shebang
|
|
||||||
sed -i 1d ./Kapowarr.py
|
|
||||||
|
|
||||||
# Disable PWA for now
|
|
||||||
substituteInPlace ./backend/internals/settings.py \
|
|
||||||
--replace-fail "with open(filename, 'w') as f:" "" \
|
|
||||||
--replace-fail "dump(manifest, f, indent=4)" ""
|
|
||||||
|
|
||||||
# TODO: makes sure this works
|
|
||||||
substituteInPlace ./backend/implementations/converters.py \
|
|
||||||
--replace-fail \
|
|
||||||
"exe = folder_path('backend', 'lib', Constants.RAR_EXECUTABLES[platform])" \
|
|
||||||
"exe = '${getExe rar}'"
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
mkdir -p $out/${python.sitePackages}
|
|
||||||
cp -r ./. $out/${python.sitePackages}
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
makeWrapper ${pythonExe} $out/bin/kapowarr \
|
|
||||||
--add-flags "$out/${python.sitePackages}/Kapowarr.py"
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
inherit (rar.meta) platforms;
|
|
||||||
mainProgram = pname;
|
|
||||||
license = lib.licenses.gpl3Only;
|
|
||||||
homepage = "https://casvt.github.io/Kapowarr";
|
|
||||||
description = ''
|
|
||||||
Kapowarr is a software to build and manage a comic book library,
|
|
||||||
fitting in the *arr suite of software.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{
|
|
||||||
# nix build inputs
|
|
||||||
buildPythonPackage,
|
|
||||||
fetchPypi,
|
|
||||||
# deps
|
|
||||||
flit-core,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
pname = "typing_extensions";
|
|
||||||
version = "4.12.2";
|
|
||||||
in
|
|
||||||
buildPythonPackage {
|
|
||||||
inherit pname version;
|
|
||||||
format = "pyproject";
|
|
||||||
|
|
||||||
build-system = [flit-core];
|
|
||||||
dependencies = [flit-core];
|
|
||||||
|
|
||||||
src = fetchPypi {
|
|
||||||
inherit pname version;
|
|
||||||
hash = "sha256-Gn6tVcflWd1N7ohW46iLQSJav+HOjfV7fBORX+Eh/7g=";
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue