1
1
import argparse
2
+ import os
2
3
import sys
3
4
from pathlib import Path
4
- from typing import List , Optional
5
+ from typing import List
5
6
6
7
from hatanaka import __version__ , compress , compress_on_disk , decompress , decompress_on_disk , \
7
8
rnxcmp_version
8
9
from hatanaka .general_compression import _record_warnings
10
+ from hatanaka .hatanaka import _popen
9
11
10
12
__all__ = ['decompress_cli' , 'compress_cli' ]
11
13
12
14
13
- def decompress_cli (args : Optional [ List [str ] ] = None ) -> int :
15
+ def decompress_cli (args : List [str ] = None ) -> int :
14
16
if args is None :
15
17
args = sys .argv [1 :]
16
18
@@ -37,7 +39,7 @@ def decompress_cli(args: Optional[List[str]] = None) -> int:
37
39
return _run (decompress , decompress_on_disk , args , skip_strange_epochs = args .skip_strange_epochs )
38
40
39
41
40
- def compress_cli (args : Optional [ List [str ] ] = None ) -> int :
42
+ def compress_cli (args : List [str ] = None ) -> int :
41
43
if args is None :
42
44
args = sys .argv [1 :]
43
45
@@ -106,3 +108,23 @@ def _add_common_args(parser):
106
108
'finishes without any errors and warnings' )
107
109
parser .add_argument ('--version' , action = 'version' , version = __version__ )
108
110
parser .add_argument ('--rnxcmp-version' , action = 'version' , version = rnxcmp_version )
111
+
112
+
113
+ def _wrap (program , args ):
114
+ try :
115
+ if args is None :
116
+ args = sys .argv [1 :]
117
+ proc = _popen (program , args )
118
+ proc .wait ()
119
+ return proc .returncode
120
+ except KeyboardInterrupt :
121
+ sys .stderr = open (os .devnull , 'w' )
122
+ raise
123
+
124
+
125
+ def rnx2crx (args : List [str ] = None ):
126
+ return _wrap ('rnx2crx' , args )
127
+
128
+
129
+ def crx2rnx (args : List [str ] = None ):
130
+ return _wrap ('crx2rnx' , args )
0 commit comments