# yt - A fully featured command line YouTube client # # Copyright (C) 2024 Benedikt Peetz # SPDX-License-Identifier: GPL-3.0-or-later # # This file is part of Yt. # # You should have received a copy of the License along with this program. # If not, see . { rustPlatform, python3, makeWrapper, sqlite, lib, ffmpeg, llvmPackages_latest, glibc, mpv-unwrapped, }: let version = "0.1.0"; src = ./.; in rustPlatform.buildRustPackage { inherit version src; pname = "yt"; nativeBuildInputs = [ makeWrapper sqlite ]; buildInputs = [ (python3.withPackages (ps: [ps.yt-dlp])) mpv-unwrapped.dev ]; env = let clang_version = lib.versions.major llvmPackages_latest.clang-unwrapped.version; in { FFMPEG_LOCATION = "${lib.getExe ffmpeg}"; LIBCLANG_PATH = "${llvmPackages_latest.clang-unwrapped.lib}/lib/libclang.so"; LIBCLANG_INCLUDE_PATH = "${llvmPackages_latest.clang-unwrapped.lib}/lib/clang/${clang_version}/include"; C_INCLUDE_PATH = "${glibc.dev}/include"; PYO3_PYTHON = lib.getExe (python3.withPackages (ps: [ps.yt-dlp])); DATABASE_URL = "sqlite://target/database.sqlite"; }; prePatch = '' echo "$PATH" bash ./scripts/mkdb.sh ''; cargoLock = { lockFile = ./Cargo.lock; }; postBuild = '' install -m755 ./python_update/raw_update.py -D "$out/bin/raw_update.py" patchShebangs "$out/bin/raw_update.py" ''; postInstall = '' wrapProgram $out/bin/yt \ --prefix PATH : $out/bin/ ''; }