aboutsummaryrefslogtreecommitdiff
blob: afe021b3a1ad1be23e525447166f09deebc0ddf8 (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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env python
# Copyright 2020-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

import argparse
import sys

from os import path as osp

if osp.isfile(
    osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), ".portage_not_installed")
):
    sys.path.insert(
        0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "lib")
    )
import portage

portage._internal_caller = True
from portage.util.shelve import dump, restore


def main(argv=None):
    parser = argparse.ArgumentParser(prog="shelve-utils")
    subparsers = parser.add_subparsers(help="sub-command help")

    dump_command = subparsers.add_parser("dump", help="dump shelve database")
    dump_command.add_argument("src", help="input shelve file")
    dump_command.add_argument("dest", help="output pickle file")
    dump_command.set_defaults(func=dump)

    restore_command = subparsers.add_parser("restore", help="restore shelve database")
    restore_command.add_argument("src", help="input pickle file")
    restore_command.add_argument("dest", help="output shelve file")
    restore_command.set_defaults(func=restore)

    args = parser.parse_args(args=portage._decode_argv(argv or sys.argv)[1:])
    args.func(args)


if __name__ == "__main__":
    portage.util.initialize_logger()
    main(argv=sys.argv)