borg-manager/src/main.py
George Lacey 5414f3e141 Implement labels
- create label table
- create base database object class
- rename primary keys to 'id'
- log messages with label
- automatically reassign label to repo where possible
2021-05-05 04:07:59 +01:00

48 lines
1.5 KiB
Python

from borgmanager.database import BorgDatabase
from sys import stdin
from os.path import realpath
from pathlib import Path
import argparse
from borgmanager.borg import OutputHandler
from borgmanager.summary import Summary
def main(args, path: Path):
if args.output is not None:
output_path = Path(args.output)
if not output_path.exists():
output_path.mkdir()
path = output_path
db = BorgDatabase(path / 'borg.sqlite')
if args.graph is not None:
pass
elif args.summary is not None:
summary = Summary(db, args.summary)
else:
borg_output = " ".join(stdin.readlines())
if args.label is None:
raise Exception("No label supplied")
else:
bo = OutputHandler(borg_output)
if bo.error:
db.insert_error(bo.get_borg_error(), args.label)
else:
db.insert_record(*bo.get_borg_info(), args.label)
def get_args():
parser = argparse.ArgumentParser()
parser.add_argument("-g", "--graph", help="Produce graphs at specified location", type=str)
parser.add_argument("-s", "--summary", help="Print summary", type=str)
parser.add_argument("-o", "--output", help="Output Directory", type=str)
parser.add_argument("-l", "--label", help="Repo Label", type=str)
return parser.parse_args()
if __name__ == "__main__":
m_args = get_args()
m_path = Path(realpath(__file__)).parent.parent
main(m_args, m_path)