29 lines
600 B
Nix
29 lines
600 B
Nix
{ pkgs ? import <nixpkgs> {} }:
|
|
let
|
|
getPkgName =
|
|
pkg:
|
|
builtins.elemAt (builtins.split "-" pkg.name) 0;
|
|
in {
|
|
mkPackageWrapper =
|
|
pkg:
|
|
environ:
|
|
prefix:
|
|
postfix:
|
|
pkgs.writeScriptBin
|
|
(getPkgName pkg)
|
|
''
|
|
#! ${pkgs.bash}/bin/bash
|
|
${environ}
|
|
exec ${prefix} ${pkg}/bin/${getPkgName pkg} ${postfix} "$@"
|
|
'';
|
|
mkQuarantinedPackage =
|
|
pkg:
|
|
pkgs.writeScriptBin
|
|
(getPkgName pkg)
|
|
''
|
|
#! ${pkgs.bash}/bin/bash
|
|
export HOME=$HOME/.local/${getPkgName pkg}
|
|
exec ${pkg}/bin/${getPkgName pkg}
|
|
'';
|
|
}
|