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