]> git.scottworley.com Git - pinch/commitdiff
Specify profile path with --profile
authorScott Worley <scottworley@scottworley.com>
Tue, 30 Jun 2020 20:30:13 +0000 (13:30 -0700)
committerScott Worley <scottworley@scottworley.com>
Tue, 30 Jun 2020 20:32:08 +0000 (13:32 -0700)
Changelog
pinch.py
tests/profile.sh [new file with mode: 0755]

index a2ffedf023c2da4fb13153098a1ce0aca77d10b7..6c0cdf812fd6616948ce2b15f1c7d72bd18fa38e 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,4 +1,6 @@
 ## [Unreleased]
+### Added
+- Specify profile path with --profile
 
 ## [2.0.0] - 2020-06-17
 ### Changed
index 8c9e976583ffd4c2e5d049245ee4dc90db1e3742..a7f3449a6dfaabf175343eb97879cbdcf9552095 100644 (file)
--- 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',
         '<nix/unpack-channel.nix>',
@@ -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 (executable)
index 0000000..00ceb27
--- /dev/null
@@ -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 '\''<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