20 lines
595 B
Nix
20 lines
595 B
Nix
lib: pkgs:
|
|
let
|
|
wrap =
|
|
{ name, pkg, args ? [ ], envs ? { } }:
|
|
let
|
|
argsStr = lib.concatStringsSep " " (map (a: ''--add-flags "${a}"'') args);
|
|
envsStr = lib.concatStringsSep " " (lib.mapAttrsToList (k: v: ''--set ${k} "${v}"'') envs);
|
|
in
|
|
pkgs.symlinkJoin {
|
|
inherit name;
|
|
paths = [ pkg ];
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
postBuild = "wrapProgram $out/bin/${name} ${argsStr} ${envsStr}";
|
|
};
|
|
|
|
wrapXdg =
|
|
name: pkg: configDir:
|
|
wrap { inherit name pkg; envs = { XDG_CONFIG_HOME = configDir; }; };
|
|
in
|
|
{ inherit wrap wrapXdg; }
|