source ./common.sh requireGit templatesDir=$TEST_ROOT/templates flakeDir=$TEST_ROOT/flake nixpkgsDir=$TEST_ROOT/nixpkgs nix registry add --registry $registry templates git+file://$templatesDir nix registry add --registry $registry nixpkgs git+file://$nixpkgsDir createGitRepo $nixpkgsDir createSimpleGitFlake $nixpkgsDir # Test 'nix flake init'. createGitRepo $templatesDir cat > $templatesDir/flake.nix < $templatesDir/trivial/flake.nix < $templatesDir/trivial/a echo b > $templatesDir/trivial/b git -C $templatesDir add flake.nix trivial/ git -C $templatesDir commit -m 'Initial' nix flake check templates nix flake show templates nix flake show templates --json | jq createGitRepo $flakeDir (cd $flakeDir && nix flake init) (cd $flakeDir && nix flake init) # check idempotence git -C $flakeDir add flake.nix nix flake check $flakeDir nix flake show $flakeDir nix flake show $flakeDir --json | jq git -C $flakeDir commit -a -m 'Initial' # Test 'nix flake init' with benign conflicts createGitRepo "$flakeDir" echo a > $flakeDir/a (cd $flakeDir && nix flake init) # check idempotence # Test 'nix flake init' with conflicts createGitRepo "$flakeDir" echo b > $flakeDir/a pushd $flakeDir (! nix flake init) |& grep "refusing to overwrite existing file '$flakeDir/a'" popd git -C $flakeDir commit -a -m 'Changed' # Test 'nix flake new'. rm -rf $flakeDir nix flake new -t templates#trivial $flakeDir nix flake new -t templates#trivial $flakeDir # check idempotence nix flake check $flakeDir