]>
Commit | Line | Data |
---|---|---|
db3da89c SW |
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 |