#!/bin/sh set -e repo_dir="`mktemp -d`" repo="$repo_dir/repo" git init "$repo" ( cd "$repo" echo Contents > test-file git add test-file git commit -m 'Commit message' ) conf="`mktemp`" cat > "$conf" < other-file git add other-file git commit -m 'Second commit message' ) python3 ./pinch.py pin "$conf" actual_env_command=`python3 ./pinch.py update --dry-run "$conf"` rm -rf "$repo_dir" "$conf" expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\'''\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "foo"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\''$' if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then echo PASS else echo "Output: $actual_env_command" echo "does not match RE: $expected_env_command_RE" exit 1 fi