command = [
'nix-env',
'--profile',
- '/nix/var/nix/profiles/per-user/%s/channels' %
- getpass.getuser(),
+ args.profile,
'--show-trace',
'--file',
'<nix/unpack-channel.nix>',
parser_pin.set_defaults(func=pinCommand)
parser_update = subparsers.add_parser('update')
parser_update.add_argument('--dry-run', action='store_true')
+ parser_update.add_argument('--profile', default=(
+ '/nix/var/nix/profiles/per-user/%s/channels' % getpass.getuser()))
parser_update.add_argument('channels_file', type=str, nargs='+')
parser_update.set_defaults(func=updateCommand)
args = parser.parse_args()
--- /dev/null
+#!/bin/sh
+
+. ./tests/lib/test-setup.sh
+
+foo_setup
+
+python3 ./pinch.py pin "$conf"
+
+actual_env_command=`python3 ./pinch.py update --dry-run --profile /path/to/profile "$conf"`
+
+expected_env_command_RE='^nix-env --profile /path/to/profile --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_DIR"'/.{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