Skip to content

Commit b94f57c

Browse files
committed
upate to use new zenlib, actually pass override
Signed-off-by: Zen <[email protected]>
1 parent 1764d90 commit b94f57c

File tree

3 files changed

+23
-43
lines changed

3 files changed

+23
-43
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ classifiers = [
1616
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
1717
"Operating System :: OS Independent",
1818
]
19-
dependencies = ["zenlib >= 1.6.4"]
19+
dependencies = ["zenlib >= 1.7.1"]
2020

2121
[project.scripts]
2222
pycpio = "pycpio.main:main"

src/pycpio/main.py

Lines changed: 21 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,51 +3,30 @@
33
from pathlib import Path
44

55
from pycpio import PyCPIO
6-
from zenlib.util import init_logger, init_argparser, process_args
6+
from zenlib.util import get_kwargs_from_args, get_args_n_logger
77

88

99
def main():
10-
logger = init_logger(__package__)
11-
argparser = init_argparser(prog=__package__, description='PyCPIO')
12-
13-
argparser.add_argument('-i', '--input', help='input file')
14-
15-
argparser.add_argument('-a', '--append', action='store', help='append to archive')
16-
argparser.add_argument('--recursive', action='store_true', help='append to archive recursively')
17-
argparser.add_argument('--relative', action='store', help='append to archive relative to this path')
18-
argparser.add_argument('--absolute', action='store_true', help='allow absolute paths')
19-
argparser.add_argument('--rm', '--delete', action='store', help='delete from archive')
20-
argparser.add_argument('-n', '--name', action='store', help='Name/path override for append')
21-
22-
argparser.add_argument('-s', '--symlink', action='store', help='create symlink')
23-
argparser.add_argument('-c', '--chardev', action='store', help='create character device')
24-
25-
argparser.add_argument('--major', action='store', help='major number for character/block device')
26-
argparser.add_argument('--minor', action='store', help='minor number for character/block device')
27-
28-
argparser.add_argument('-u', '--set-owner', action='store', help='set UID on all files')
29-
argparser.add_argument('-g', '--set-group', action='store', help='set GID on all files')
30-
argparser.add_argument('-m', '--set-mode', action='store', help='set mode on all files')
31-
32-
argparser.add_argument('-o', '--output', help='output file')
33-
34-
argparser.add_argument('-l', '--list', action='store_true', help='list CPIO contents')
35-
argparser.add_argument('-p', '--print', action='store_true', help='print CPIO contents')
36-
37-
args = process_args(argparser, logger=logger)
38-
kwargs = {'logger': logger}
39-
40-
if args.name:
41-
kwargs['name'] = args.name
42-
43-
if args.set_owner:
44-
kwargs['uid'] = int(args.set_owner)
45-
46-
if args.set_group:
47-
kwargs['gid'] = int(args.set_group)
48-
49-
if args.set_mode:
50-
kwargs['mode'] = int(args.set_mode, 8)
10+
arguments = [{'flags': ['-i', '--input'], 'help': 'input file'},
11+
{'flags': ['-a', '--append'], 'help': 'append to archive'},
12+
{'flags': ['--recursive'], 'action': 'store_true', 'help': 'append to archive recursively'},
13+
{'flags': ['--relative'], 'action': 'store', 'help': 'append to archive relative to this path'},
14+
{'flags': ['--absolute'], 'action': 'store_true', 'help': 'allow absolute paths'},
15+
{'flags': ['--rm', '--delete'], 'action': 'store', 'help': 'delete from archive'},
16+
{'flags': ['-n', '--name'], 'action': 'store', 'help': 'Name/path override for append'},
17+
{'flags': ['-s', '--symlink'], 'action': 'store', 'help': 'create symlink'},
18+
{'flags': ['-c', '--chardev'], 'action': 'store', 'help': 'create character device'},
19+
{'flags': ['--major'], 'action': 'store', 'help': 'major number for character/block device', 'type': int},
20+
{'flags': ['--minor'], 'action': 'store', 'help': 'minor number for character/block device', 'type': int},
21+
{'flags': ['-u', '--set-owner'], 'action': 'store', 'help': 'set UID on all files', 'type': int, 'dest': 'uid'},
22+
{'flags': ['-g', '--set-group'], 'action': 'store', 'help': 'set GID on all files', 'type': int, 'dest': 'gid'},
23+
{'flags': ['-m', '--set-mode'], 'action': 'store', 'help': 'set mode on all files', 'type': int, 'dest': 'mode'},
24+
{'flags': ['-o', '--output'], 'help': 'output file'},
25+
{'flags': ['-l', '--list'], 'action': 'store_true', 'help': 'list CPIO contents'},
26+
{'flags': ['-p', '--print'], 'action': 'store_true', 'help': 'print CPIO contents'}]
27+
28+
args, logger = get_args_n_logger(package=__package__, description='PyCPIO', arguments=arguments)
29+
kwargs = get_kwargs_from_args(args, logger=logger)
5130

5231
c = PyCPIO(**kwargs)
5332
if args.input:

src/pycpio/pycpio.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ def __init__(self, structure=HEADER_NEW, *args, **kwargs):
2121
for attr in self.structure:
2222
if value := kwargs.pop(attr, None):
2323
self.logger.info("[%s] Setting override: %s" % (attr, value))
24+
self.overrides[attr] = value
2425

2526
def append_cpio(self, path: Path, name: str = None, *args, **kwargs):
2627
""" Appends a file or directory to the CPIO archive. """

0 commit comments

Comments
 (0)