]> git.scottworley.com Git - pinch/blob - tests/pin-twice.sh
More tests: pin-twice, reject-nonancestor
[pinch] / tests / pin-twice.sh
1 #!/bin/sh
2
3 set -e
4
5 repo_dir="`mktemp -d`"
6 repo="$repo_dir/repo"
7 git init "$repo"
8 (
9 cd "$repo"
10 echo Contents > test-file
11 git add test-file
12 git commit -m 'Commit message'
13 )
14
15 conf="`mktemp`"
16 cat > "$conf" <<EOF
17 [foo]
18 git_repo = file://$repo
19 git_ref = master
20 EOF
21
22 python3 ./pinch.py pin "$conf"
23
24 (
25 cd "$repo"
26 echo Other contents > other-file
27 git add other-file
28 git commit -m 'Second commit message'
29 )
30
31 python3 ./pinch.py pin "$conf"
32
33 actual_env_command=`python3 ./pinch.py update --dry-run "$conf"`
34
35 rm -rf "$repo_dir" "$conf"
36
37 expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\''<nix/unpack-channel.nix>'\'' --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"; \}'\''$'
38
39 if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
40 echo PASS
41 else
42 echo "Output: $actual_env_command"
43 echo "does not match RE: $expected_env_command_RE"
44 exit 1
45 fi