diff options
author | Pol Dellaiera <pol.dellaiera@protonmail.com> | 2024-05-15 16:45:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-15 16:45:23 +0200 |
commit | 4275fc290aaecb6072abcdfc75741373ecfa0fdc (patch) | |
tree | 808837bcdf5e1d5c566995fddc43960885b9bb5e /pkgs/by-name/yo | |
parent | 9997402000a82eda4327fde36291234118c7515e (diff) | |
parent | 05b36f060da279563ab7097c299a40e9ecfc39f6 (diff) |
Merge pull request #293817 from PatrickDaG/your_spotify
nixos/your_spotify: init at 1.10.1
Diffstat (limited to 'pkgs/by-name/yo')
-rw-r--r-- | pkgs/by-name/yo/your_spotify/client.nix | 58 | ||||
-rw-r--r-- | pkgs/by-name/yo/your_spotify/package.json | 10 | ||||
-rw-r--r-- | pkgs/by-name/yo/your_spotify/package.nix | 85 |
3 files changed, 153 insertions, 0 deletions
diff --git a/pkgs/by-name/yo/your_spotify/client.nix b/pkgs/by-name/yo/your_spotify/client.nix new file mode 100644 index 0000000000000..420498821bf93 --- /dev/null +++ b/pkgs/by-name/yo/your_spotify/client.nix @@ -0,0 +1,58 @@ +{ + apiEndpoint ? "http://localhost:3000", + fetchYarnDeps, + your_spotify, + mkYarnPackage, + fixup-yarn-lock, + src, + version, + yarn, +}: +mkYarnPackage rec { + inherit version src; + pname = "your_spotify_client"; + name = "your_spotify_client-${version}"; + packageJSON = ./package.json; + offlineCache = fetchYarnDeps { + yarnLock = src + "/yarn.lock"; + hash = "sha256-5SgknaRVzgO2Dzc8MhAaM8UERWMv+PrItzevoWHbWnA="; + }; + configurePhase = '' + runHook preConfigure + + export HOME=$(mktemp -d) + yarn config --offline set yarn-offline-mirror $offlineCache + fixup-yarn-lock yarn.lock + yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive + patchShebangs node_modules/ + + runHook postConfigure + ''; + buildPhase = '' + runHook preBuild + pushd ./apps/client/ + yarn --offline run build + export API_ENDPOINT="${apiEndpoint}" + substituteInPlace scripts/run/variables.sh --replace-quiet '/app/apps/client/' "./" + + chmod +x ./scripts/run/variables.sh + patchShebangs --build ./scripts/run/variables.sh + + ./scripts/run/variables.sh + + popd + runHook postBuild + ''; + nativeBuildInputs = [yarn fixup-yarn-lock]; + + installPhase = '' + runHook preInstall + mkdir -p $out + cp -r ./apps/client/build/* $out + runHook postInstall + ''; + doDist = false; + meta = { + inherit (your_spotify.meta) homepage changelog description license maintainers; + }; +} diff --git a/pkgs/by-name/yo/your_spotify/package.json b/pkgs/by-name/yo/your_spotify/package.json new file mode 100644 index 0000000000000..8c10988ffb6d2 --- /dev/null +++ b/pkgs/by-name/yo/your_spotify/package.json @@ -0,0 +1,10 @@ +{ + "name": "@your_spotify/root", + "version": "1.10.1", + "repository": "git@github.com:Yooooomi/your_spotify.git", + "author": "Timothee <timothee.boussus@gmail.com>", + "private": true, + "workspaces": [ + "apps/*" + ] +} diff --git a/pkgs/by-name/yo/your_spotify/package.nix b/pkgs/by-name/yo/your_spotify/package.nix new file mode 100644 index 0000000000000..0296b9d22c028 --- /dev/null +++ b/pkgs/by-name/yo/your_spotify/package.nix @@ -0,0 +1,85 @@ +{ + callPackage, + fetchFromGitHub, + fetchYarnDeps, + lib, + makeWrapper, + mkYarnPackage, + nodejs, + fixup-yarn-lock, + yarn, +}: let + version = "1.10.1"; + src = fetchFromGitHub { + owner = "Yooooomi"; + repo = "your_spotify"; + rev = "refs/tags/${version}"; + hash = "sha256-e82j2blGxQLWAlBNuAnFvlD9vwMk4/mRI0Vf7vuaPA0="; + }; + client = callPackage ./client.nix {inherit src version;}; +in + mkYarnPackage rec { + inherit version src; + pname = "your_spotify_server"; + name = "your_spotify_server-${version}"; + packageJSON = ./package.json; + offlineCache = fetchYarnDeps { + yarnLock = src + "/yarn.lock"; + hash = "sha256-5SgknaRVzgO2Dzc8MhAaM8UERWMv+PrItzevoWHbWnA="; + }; + + configurePhase = '' + runHook preConfigure + + export HOME=$(mktemp -d) + yarn config --offline set yarn-offline-mirror $offlineCache + fixup-yarn-lock yarn.lock + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive + patchShebangs node_modules/ + + pushd ./apps/server/ + yarn --offline run build + popd + + rm -r node_modules + export NODE_ENV="production" + yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive + patchShebangs node_modules/ + + runHook postBuild + ''; + nativeBuildInputs = [makeWrapper yarn fixup-yarn-lock]; + installPhase = '' + runHook preInstall + + mkdir -p $out/share/your_spotify + cp -r node_modules $out/share/your_spotify/node_modules + cp -r ./apps/server/{lib,package.json} $out + mkdir -p $out/bin + makeWrapper ${lib.escapeShellArg (lib.getExe nodejs)} "$out/bin/your_spotify_migrate" \ + --add-flags "$out/lib/migrations.js" --set NODE_PATH "$out/share/your_spotify/node_modules" + makeWrapper ${lib.escapeShellArg (lib.getExe nodejs)} "$out/bin/your_spotify_server" \ + --add-flags "$out/lib/index.js" --set NODE_PATH "$out/share/your_spotify/node_modules" + + runHook postInstall + ''; + doDist = false; + passthru = { + inherit client; + }; + meta = with lib; { + homepage = "https://github.com/Yooooomi/your_spotify"; + changelog = "https://github.com/Yooooomi/your_spotify/releases/tag/${version}"; + description = "Self-hosted application that tracks what you listen and offers you a dashboard to explore statistics about it"; + license = licenses.gpl3Only; + maintainers = with maintainers; [patrickdag]; + mainProgram = "your_spotify_server"; + }; + } |