]> git.scottworley.com Git - pinch/blob - tests/multi-update.sh
e7e5495929df335e6b0bbaf1aaa50755425a1977
[pinch] / tests / multi-update.sh
1 #!/bin/sh
2
3 repo_dir="`mktemp -d`"
4 repo="$repo_dir/repo"
5 git init "$repo"
6 (
7 cd "$repo"
8 echo Contents > test-file
9 git add test-file
10 git commit -m 'Commit message'
11 )
12
13 conf1="`mktemp`"
14 cat > "$conf1" <<EOF
15 [foo]
16 git_repo = file://$repo
17 git_ref = master
18 EOF
19
20 conf2="`mktemp`"
21 cat > "$conf2" <<EOF
22 [bar]
23 alias_of = foo
24 EOF
25
26 python3 ./pinch.py pin "$conf1"
27 python3 ./pinch.py pin "$conf2"
28
29 actual_env_command=`python3 ./pinch.py update --dry-run "$conf1" "$conf2"`
30
31 rm -rf "$repo_dir" "$conf1" "$conf2"
32
33 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 = "bar"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\'' '\''f: f \{ name = "\1"; channelName = "foo"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\''$'
34
35 if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
36 echo PASS
37 else
38 echo "Output: $actual_env_command"
39 echo "does not match RE: $expected_env_command_RE"
40 exit 1
41 fi