summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/python-trezor-agent-fix-argv0.patch
blob: 9462067cd517d7c76937430585237cc141f0ad72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
diff --git a/libagent/gpg/__init__.py b/libagent/gpg/__init__.py
index 3711bc8..67085de 100644
--- a/libagent/gpg/__init__.py
+++ b/libagent/gpg/__init__.py
@@ -122,15 +122,19 @@ def run_init(device_type, args):
     verify_gpg_version()
 
     # Prepare new GPG home directory for hardware-based identity
-    device_name = os.path.basename(sys.argv[0]).rsplit('-', 1)[0]
-    log.info('device name: %s', device_name)
+    exe_name = os.path.basename(sys.argv[0])
+    # drop the Guix wrapper's dot prefix from the name
+    if exe_name[0] == '.' and exe_name.endswith('-real'):
+        exe_name = exe_name[1:-5:]
+    device_name = exe_name.rsplit('-', 1)[0]
+    log.info('exe name: %s, device name: %s', exe_name, device_name)
     homedir = args.homedir
     if not homedir:
         homedir = os.path.expanduser('~/.gnupg/{}'.format(device_name))
 
     log.info('GPG home directory: %s', homedir)
 
-    if os.path.exists(homedir):
+    if os.path.exists(homedir) and not args.subkey:
         log.error('GPG home directory %s exists, '
                   'remove it manually if required', homedir)
         sys.exit(1)