35 lines
646 B
Nix
35 lines
646 B
Nix
{
|
|
findutils,
|
|
runCommandLocal,
|
|
rsync,
|
|
}:
|
|
runCommandLocal "sane-nix-files" {
|
|
nativeBuildInputs = [
|
|
findutils
|
|
rsync
|
|
];
|
|
|
|
meta = {
|
|
description = "top-level host configs for Colin's machines";
|
|
longDescription = ''
|
|
i like to ensure a copy of my config is present on all my machines,
|
|
and this does that in a hermetic way.
|
|
'';
|
|
};
|
|
} ''
|
|
mkdir src
|
|
pushd src
|
|
|
|
rsync -lptr ${../../../.}/ ./
|
|
chmod u+w .
|
|
for pat in $(cat .gitignore); do
|
|
set +e
|
|
chmod u+w -R "$pat" ; rm -rf "$pat"
|
|
find $PWD -name "$pat" -exec 'chmod u+w -R {}; rm -rf {}' \;
|
|
set -e
|
|
done
|
|
rsync -lptr ./ $out/
|
|
|
|
popd
|
|
''
|