#! /usr/bin/env nix-shell #! nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/42a1c966be226125b48c384171c44c651c236c22.tar.gz -i bash -p git gnugrep gnused findutils nixfmt-tree # Avoid being affected by system and user git config. export GIT_CONFIG_NOSYSTEM=1 export HOME=/var/empty export XDG_CONFIG_HOME=/var/empty nixfmt_args=() files=() for arg do case $arg in -h) echo "$0 [-c]" exit ;; --ci) nixfmt_args+=("$arg") ;; -*) echo "unrecognised flag: $arg" >&2 exit 1 ;; *) files+=("$arg") ;; esac done git_root=$(git rev-parse --show-toplevel) git ls-files -z --cached --others --full-name -- "${files[@]}" | grep -z '\.nix$' | sed -z "s|^|$git_root/|" | xargs -0 treefmt --no-cache "${nixfmt_args[@]}"