lists: fix mirror mapping output
This commit is contained in:
parent
481e60fa45
commit
8960f8904c
3 changed files with 41 additions and 1 deletions
|
@ -4,6 +4,7 @@ import sys
|
||||||
from os.path import basename
|
from os.path import basename
|
||||||
|
|
||||||
from app.cli.db import DbCliHandler
|
from app.cli.db import DbCliHandler
|
||||||
|
from app.cli.list import ListCliHandler
|
||||||
|
|
||||||
|
|
||||||
def parse_args(argv):
|
def parse_args(argv):
|
||||||
|
@ -13,6 +14,7 @@ def parse_args(argv):
|
||||||
parser.add_argument("-v", "--verbose", help="increase logging verbosity", action="store_true")
|
parser.add_argument("-v", "--verbose", help="increase logging verbosity", action="store_true")
|
||||||
subparsers = parser.add_subparsers(title="command", help="command to run")
|
subparsers = parser.add_subparsers(title="command", help="command to run")
|
||||||
DbCliHandler.add_subparser_to(subparsers)
|
DbCliHandler.add_subparser_to(subparsers)
|
||||||
|
ListCliHandler.add_subparser_to(subparsers)
|
||||||
args = parser.parse_args(argv[1:])
|
args = parser.parse_args(argv[1:])
|
||||||
if "cls" in args:
|
if "cls" in args:
|
||||||
command = args.cls(args)
|
command = args.cls(args)
|
||||||
|
|
38
app/cli/list.py
Normal file
38
app/cli/list.py
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
import argparse
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
from typing import Callable
|
||||||
|
|
||||||
|
from app import app, mirror_sites
|
||||||
|
from app.lists.bridgelines import bridgelines
|
||||||
|
from app.lists.mirror_mapping import mirror_mapping
|
||||||
|
|
||||||
|
lists = {
|
||||||
|
"mirror_mapping": mirror_mapping,
|
||||||
|
"bc2": mirror_sites,
|
||||||
|
"bridgelines": bridgelines,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def dump(list_f: Callable):
|
||||||
|
json.dump(list_f(), sys.stdout, indent=2)
|
||||||
|
|
||||||
|
|
||||||
|
class ListCliHandler:
|
||||||
|
@classmethod
|
||||||
|
def add_subparser_to(cls, subparsers: argparse._SubParsersAction) -> None:
|
||||||
|
parser = subparsers.add_parser("list", help="list operations")
|
||||||
|
parser.add_argument("--dump", choices=sorted(lists.keys()),
|
||||||
|
help="dump a list in JSON format")
|
||||||
|
parser.set_defaults(cls=cls)
|
||||||
|
|
||||||
|
def __init__(self, args):
|
||||||
|
self.args = args
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
with app.app_context():
|
||||||
|
if self.args.dump:
|
||||||
|
dump(lists[self.args.dump])
|
||||||
|
else:
|
||||||
|
logging.error("No action requested")
|
|
@ -23,7 +23,7 @@ class MirrorMapping(BaseModel):
|
||||||
|
|
||||||
|
|
||||||
def mirror_mapping():
|
def mirror_mapping():
|
||||||
return MirrorMapping(**{
|
return MirrorMapping(__root__={
|
||||||
d.url.lstrip("https://"): MMMirror(
|
d.url.lstrip("https://"): MMMirror(
|
||||||
origin_domain=d.origin.domain_name,
|
origin_domain=d.origin.domain_name,
|
||||||
origin_domain_normalized=d.origin.domain_name.lstrip("www."),
|
origin_domain_normalized=d.origin.domain_name.lstrip("www."),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue