33 lines
963 B
Nix
33 lines
963 B
Nix
{
|
|
description = "A flake that provides a set of useful helper functions";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
|
};
|
|
|
|
outputs = { self, nixpkgs }: rec {
|
|
mkIfElse = with nixpkgs.lib; p: yes: no: mkMerge [
|
|
(mkIf p yes)
|
|
(mkIf (!p) no)
|
|
];
|
|
|
|
mkSymlinkActivationScript = {target, source, isDir ? false}: ''
|
|
if [ -e ${target} ]; then
|
|
rm${if isDir then " -rf" else ""} ${target}
|
|
fi
|
|
ln -s ${source} ${target}
|
|
'';
|
|
|
|
attrByStrPath = strPath: set: nixpkgs.lib.attrByPath (nixpkgs.lib.strings.splitString "." strPath) null set;
|
|
|
|
setAttrByStrPath = strPath: value: nixpkgs.lib.setAttrByPath (nixpkgs.lib.strings.splitString "." strPath) value;
|
|
|
|
homeFilesFromStringAttrs = { dir, attrs, exec ? false }: map (x: (map (y: {
|
|
"${dir}/${x}" = {
|
|
text = y;
|
|
executable = exec;
|
|
};
|
|
}) (builtins.attrValues attrs)) ) (builtins.attrNames attrs);
|
|
};
|
|
}
|