#! /bin/sh
# make-rsync-filter : nixos-config -> rsync-filter
set -euf

main=$1

hosts=$(list-hosts)
module_imports=$(list-module-imports "$main")
other_imports=$(
  echo "$module_imports" \
    | xargs grep -H . \
    | import-statements \
    | slash-path-relpath \
    | undot-paths \
    | sort \
    | uniq \
    | sed '/\.nix$/!s:$:/default.nix:' \
    )
secrets=$(echo "$module_imports" | xargs cat | quoted-strings | filter-secrets)

# TODO collect all other paths from *_imports

abs_deps=$(
  echo "$hosts"
  echo "$module_imports"
  echo "$other_imports"
  echo "$secrets"
)

rel_deps=$(echo "$abs_deps" | make-relative-to "$PWD")
filter=$(echo "$rel_deps" | make-rsync-whitelist)

echo "$filter"