From: Scott Worley Date: Tue, 30 Jun 2020 20:30:13 +0000 (-0700) Subject: Specify profile path with --profile X-Git-Tag: 2.1.0~1 X-Git-Url: http://git.scottworley.com/pinch/commitdiff_plain/9e8ed0ed099aec5085d4eb3dc809f92d797ec932?ds=inline;hp=9a21f5897e6be8839d01a54107fdc7224a8a4133 Specify profile path with --profile --- diff --git a/Changelog b/Changelog index a2ffedf..6c0cdf8 100644 --- a/Changelog +++ b/Changelog @@ -1,4 +1,6 @@ ## [Unreleased] +### Added +- Specify profile path with --profile ## [2.0.0] - 2020-06-17 ### Changed diff --git a/pinch.py b/pinch.py index 8c9e976..a7f3449 100644 --- a/pinch.py +++ b/pinch.py @@ -727,8 +727,7 @@ def updateCommand(args: argparse.Namespace) -> None: command = [ 'nix-env', '--profile', - '/nix/var/nix/profiles/per-user/%s/channels' % - getpass.getuser(), + args.profile, '--show-trace', '--file', '', @@ -751,6 +750,8 @@ def main() -> None: 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() diff --git a/tests/profile.sh b/tests/profile.sh new file mode 100755 index 0000000..00ceb27 --- /dev/null +++ b/tests/profile.sh @@ -0,0 +1,19 @@ +#!/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 '\'''\'' --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