[~] Refactor

This commit is contained in:
Siarhei Siniak 2024-11-25 12:41:06 +03:00
parent 5c69e922a7
commit 62f4d9f948

@ -3726,6 +3726,49 @@ def install(argv: list[str]) -> None:
logger.info(dict(msg='done')) logger.info(dict(msg='done'))
def backup(argv: list[str]) -> None:
parser = argparse.ArgumentParser()
parser.add_argument(
'-r', '--recipients',
#type=list[str],
action='append',
default=[],
)
parser.add_argument(
'-o', '--output_dir',
#type=list[str],
required=True,
)
options, args = parser.parse_known_args(argv)
assert len(options.recipients) > 0
subprocess.check_call(r'''
(\
mkdir -p ~/.cache/; \
P=~/.cache/"secrets-$(date -Iseconds).tar.xz.gpg"; \
tar -J -cvf - ~/.gnupg ~/.ssh ~/.histfile | \
gpg -e {GPG_ARGS} > $P; \
echo $P; \
sudo -E P=$P sh -c \
'\
mkdir -p {OUTPUT_DIR}; \
cp $P {OUTPUT_DIR};
';\
sync; \
)
'''.replace(
'{GPG_ARGS}',
' '.join([
'-r %s' % o
for o in options.recipients
]),
).replace(
'{OUTPUT_DIR}',
options.output_dir,
), shell=True)
class Command(enum.StrEnum): class Command(enum.StrEnum):
media = 'media' media = 'media'
@ -3749,6 +3792,7 @@ class Command(enum.StrEnum):
pm_service = 'pm-service' pm_service = 'pm-service'
scrap_yt_music = 'scrap-yt-music' scrap_yt_music = 'scrap-yt-music'
vpn = 'vpn' vpn = 'vpn'
backup = 'backup'
def commands_cli() -> None: def commands_cli() -> None:
logging.getLogger().setLevel(logging.INFO) logging.getLogger().setLevel(logging.INFO)
@ -3824,6 +3868,8 @@ def commands_cli() -> None:
desktop_services(args) desktop_services(args)
elif options.command is Command.pm_service: elif options.command is Command.pm_service:
pm_service(args) pm_service(args)
elif options.command is Command.backup:
backup(args)
elif options.command is Command.scrap_yt_music: elif options.command is Command.scrap_yt_music:
scrap_yt_music(args) scrap_yt_music(args)
elif options.command is Command.vpn: elif options.command is Command.vpn: