Skip to content

Commit

Permalink
pop-launcher: follow from NixOS/nixpkgs#176303
Browse files Browse the repository at this point in the history
  • Loading branch information
foo-dogsquared committed Aug 10, 2022
1 parent 8651fc7 commit 1da6d4e
Showing 1 changed file with 38 additions and 11 deletions.
49 changes: 38 additions & 11 deletions pkgs/pop-launcher.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
{ lib, fetchFromGitHub, rustPlatform, just, runtimeShell }:
{ rustPlatform
, fetchFromGitHub
, lib
, fd
, libqalculate
}:

rustPlatform.buildRustPackage rec {
pname = "pop-launcher";
Expand All @@ -7,22 +12,44 @@ rustPlatform.buildRustPackage rec {
src = fetchFromGitHub {
owner = "pop-os";
repo = "launcher";
rev = version;
rev = "${version}";
sha256 = "sha256-BQAO9IodZxGgV8iBmUaOF0yDbAMVDFslKCqlh3pBnb0=";
};

cargoSha256 = "sha256-cTvrq0fH057UIx/O9u8zHMsg+psMGg1q9klV5OMxtok=";

# Replace the distribution plugins path since it is only usable with traditional Linux distros.
postPatch = ''
substituteInPlace justfile --replace "#!/usr/bin/env sh" "#!${runtimeShell}"
substituteInPlace src/lib.rs --replace "/usr/lib/pop-launcher" "$out/share/pop-launcher"
substituteInPlace plugins/src/scripts/mod.rs --replace "/usr/lib/pop-launcher" "$out/share/pop-launcher"
substituteInPlace src/lib.rs \
--replace '/usr/lib/pop-launcher' "$out/share/pop-launcher"
substituteInPlace plugins/src/scripts/mod.rs \
--replace '/usr/lib/pop-launcher' "$out/share/pop-launcher"
substituteInPlace plugins/src/calc/mod.rs \
--replace 'Command::new("qalc")' 'Command::new("${libqalculate}/bin/qalc")'
substituteInPlace plugins/src/find/mod.rs \
--replace 'spawn("fd")' 'spawn("${fd}/bin/fd")'
substituteInPlace plugins/src/terminal/mod.rs \
--replace '/usr/bin/gnome-terminal' 'gnome-terminal'
'';

nativeBuildInputs = [ just ];
buildPhase = "just";
installPhase = "just base_dir=$out/ install";
cargoSha256 = "sha256-cTvrq0fH057UIx/O9u8zHMsg+psMGg1q9klV5OMxtok=";

cargoBuildFlags = [ "--package" "pop-launcher-bin" ];

postInstall = ''
mv $out/bin/pop-launcher{-bin,}
plugins_dir=$out/share/pop-launcher/plugins
scripts_dir=$out/share/pop-launcher/scripts
mkdir -p $plugins_dir $scripts_dir
for plugin in $(find plugins/src -mindepth 1 -maxdepth 1 -type d -printf '%f\n'); do
mkdir $plugins_dir/$plugin
cp plugins/src/$plugin/*.ron $plugins_dir/$plugin
ln -sf $out/bin/pop-launcher $plugins_dir/$plugin/$(echo $plugin | sed 's/_/-/')
done
for script in scripts/*; do
cp -r $script $scripts_dir
done
'';

meta = with lib; {
description = "Modular IPC-based desktop launcher service";
Expand Down

0 comments on commit 1da6d4e

Please sign in to comment.