Commit 4b81ba62 authored by jf-uu's avatar jf-uu
Browse files

overseerr: init at 1.34.0

parent 3fdc01e3
Loading
Loading
Loading
Loading
+73 −0
Original line number Diff line number Diff line
{
  fetchFromGitHub,
  fetchYarnDeps,
  lib,
  makeWrapper,
  node-gyp,
  node-pre-gyp,
  nodejs,
  python3,
  stdenv,
  yarnBuildHook,
  yarnConfigHook,
  yarnInstallHook,
}:

stdenv.mkDerivation rec {
  pname = "overseerr";
  version = "1.34.0";

  src = fetchFromGitHub {
    owner = "sct";
    repo = "overseerr";
    tag = "v${version}";
    hash = "sha256-4332XsupUGjkFo0+4wn2fUyK5/y6EQoPaAuayBH/myk=";
  };

  offlineCache = fetchYarnDeps {
    yarnLock = "${src}/yarn.lock";
    hash = "sha256-f30P+/DxDz9uBmdgvaYK4YOAUmVce8MUnNHBXr8/yKc=";
  };

  env.CYPRESS_INSTALL_BINARY = 0;

  nativeBuildInputs = [
    makeWrapper
    node-gyp
    node-pre-gyp
    nodejs
    python3
    yarnBuildHook
    yarnConfigHook
    yarnInstallHook
  ];

  postInstall = ''
    # Fixes "Error: Cannot find module" (bcrypt) and "SQLite package has not been found installed".
    pushd $out/lib/node_modules/overseerr/node_modules
    for module in bcrypt sqlite3; do
      pushd $module
      node-pre-gyp rebuild --build-from-source --nodedir=${nodejs} --prefer-offline
      popd
    done

    makeWrapper "${lib.getExe nodejs}" "$out/bin/overseerr" \
      --set NODE_ENV production \
      --chdir "$out/lib/node_modules/overseerr" \
      --add-flags "dist/index.js" \
      --add-flags "--"
  '';

  meta = {
    badPlatforms = [
      # FileNotFoundError: [Errno 2] No such file or directory: 'xcodebuild'
      lib.systems.inspect.patterns.isDarwin
    ];
    changelog = "https://github.com/sct/overseerr/releases/tag/v${version}";
    description = "Request management and media discovery tool for the Plex ecosystem";
    homepage = "https://github.com/sct/overseerr";
    license = lib.licenses.mit;
    mainProgram = "overseerr";
    maintainers = with lib.maintainers; [ jf-uu ];
  };
}