57 lines
1.7 KiB
Nix
57 lines
1.7 KiB
Nix
{
|
|
spotify,
|
|
rustPlatform,
|
|
fetchFromGitHub,
|
|
zip,
|
|
unzip,
|
|
}:
|
|
let
|
|
spotify-adblock = rustPlatform.buildRustPackage {
|
|
pname = "spotify-adblock";
|
|
version = "1.0.3";
|
|
src = fetchFromGitHub {
|
|
owner = "abba23";
|
|
repo = "spotify-adblock";
|
|
rev = "5a3281dee9f889afdeea7263558e7a715dcf5aab";
|
|
hash = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE=";
|
|
};
|
|
|
|
useFetchCargoVendor = true;
|
|
cargoHash = "sha256-oGpe+kBf6kBboyx/YfbQBt1vvjtXd1n2pOH6FNcbF8M=";
|
|
|
|
patchPhase = ''
|
|
substituteInPlace src/lib.rs \
|
|
--replace-fail 'config.toml' $out/etc/spotify-adblock/config.toml
|
|
'';
|
|
|
|
buildPhase = ''
|
|
make
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/etc/spotify-adblock
|
|
install -D --mode=644 config.toml $out/etc/spotify-adblock
|
|
mkdir -p $out/lib
|
|
install -D --mode=644 --strip target/release/libspotifyadblock.so $out/lib
|
|
'';
|
|
};
|
|
in
|
|
spotify.overrideAttrs (old: {
|
|
buildInputs = (old.buildInputs or [ ]) ++ [
|
|
zip
|
|
unzip
|
|
];
|
|
postInstall =
|
|
(old.postInstall or "")
|
|
+ ''
|
|
ln -s ${spotify-adblock}/lib/libspotifyadblock.so $libdir
|
|
sed -i "s:^Name=Spotify.*:Name=Spotify-adblock:" "$out/share/spotify/spotify.desktop"
|
|
wrapProgram $out/bin/spotify \
|
|
--set LD_PRELOAD "${spotify-adblock}/lib/libspotifyadblock.so"
|
|
|
|
# Hide placeholder for advert banner
|
|
${unzip}/bin/unzip -p $out/share/spotify/Apps/xpui.spa xpui.js | sed 's/adsEnabled:\!0/adsEnabled:false/' > $out/share/spotify/Apps/xpui.js
|
|
${zip}/bin/zip --junk-paths --update $out/share/spotify/Apps/xpui.spa $out/share/spotify/Apps/xpui.js
|
|
rm $out/share/spotify/Apps/xpui.js
|
|
'';
|
|
})
|