You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.1 KiB
62 lines
2.1 KiB
# bsv - Backup, Synchronization, Versioning
|
|
# Copyright (C) 2023 Simon Boyé
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
from __future__ import annotations
|
|
|
|
from argparse import ArgumentParser
|
|
from pathlib import Path
|
|
|
|
from bsv import __version__
|
|
from bsv.cli import get_console
|
|
from bsv.command import command
|
|
from bsv.repository import Repository
|
|
|
|
|
|
def init_parser(parser: ArgumentParser):
|
|
parser.add_argument(
|
|
"--verbose", "-v",
|
|
action = "count",
|
|
default = 0,
|
|
help = "Verbosity level. Specify several times to increase verbosity.",
|
|
dest = "verbosity",
|
|
)
|
|
|
|
@command(init_parser)
|
|
def info(config_path: Path, verbosity: int=0) -> int:
|
|
"""Print informations about bsv: config file used, known repository, file mapping...
|
|
"""
|
|
|
|
print = get_console().print
|
|
|
|
print(f"bsv [green]v{__version__}")
|
|
|
|
if not config_path.exists():
|
|
print("bsv configuration not found. Bsv is likely not setup on this device.", style="red")
|
|
return 0
|
|
|
|
repo = Repository(config_path)
|
|
|
|
print(f"[blue]Config path: [bold yellow]{repo.config_path}")
|
|
print(f"[blue]Device name: [bold yellow]{repo.device_name}")
|
|
print(f"[blue]Local repository: [bold yellow]{repo._local_repository_path}")
|
|
|
|
print("[blue]Path map:[/blue] (bsv path <-> filesystem path)")
|
|
if repo.path_map.pairs:
|
|
for pair in sorted(repo.path_map.pairs):
|
|
print(f" {pair.bsv} <-> {pair.fs}")
|
|
else:
|
|
print(" [bold yellow]No path mapped.")
|
|
|
|
return 0
|
|
|