mirror of
https://github.com/nix-community/home-manager
synced 2024-12-27 12:19:48 +01:00
home-environment: fail if a home.file is outside $HOME
This commit is contained in:
parent
aa69598b57
commit
6ecf9e091c
1 changed files with 10 additions and 2 deletions
|
@ -416,11 +416,19 @@ in
|
|||
concatStringsSep "\n" (
|
||||
mapAttrsToList (n: v:
|
||||
''
|
||||
target="$(realpath -m "$out/${v.target}")"
|
||||
|
||||
# Target file must be within $HOME.
|
||||
if [[ ! "$target" =~ "$out" ]] ; then
|
||||
echo "Error installing file '${v.target}' outside \$HOME" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -d "${v.source}" ]; then
|
||||
mkdir -pv "$(dirname "$out/${v.target}")"
|
||||
ln -sv "${v.source}" "$out/${v.target}"
|
||||
ln -sv "${v.source}" "$target"
|
||||
else
|
||||
install -D -m${v.mode} "${v.source}" "$out/${v.target}"
|
||||
install -D -m${v.mode} "${v.source}" "$target"
|
||||
fi
|
||||
''
|
||||
) cfg.file
|
||||
|
|
Loading…
Reference in a new issue