import argparse
|
|
import os
|
|
|
|
from config import Config
|
|
from transpose import Transpose, version
|
|
|
|
config = Config()
|
|
|
|
|
|
def main() -> None:
|
|
args = parse_arguments()
|
|
|
|
t = Transpose(
|
|
target_path=args.target_path,
|
|
store_path=config.store_path,
|
|
cache_filename=config.cache_filename,
|
|
)
|
|
|
|
if args.action == "restore":
|
|
t.restore()
|
|
elif args.action == "store":
|
|
t.store(name=args.name)
|
|
|
|
|
|
def parse_arguments():
|
|
base_parser = argparse.ArgumentParser(add_help=False)
|
|
parser = argparse.ArgumentParser(
|
|
parents=[base_parser],
|
|
description="""
|
|
Move and symlink a path for easier management
|
|
""",
|
|
)
|
|
parser.add_argument("--version", action="version", version=f"Transpose {version}")
|
|
|
|
subparsers = parser.add_subparsers(help="Transpose Action", dest="action")
|
|
|
|
restore_parser = subparsers.add_parser(
|
|
"restore",
|
|
help="Move a transposed directory back to it's original location",
|
|
parents=[base_parser],
|
|
)
|
|
restore_parser.add_argument(
|
|
"target_path",
|
|
help="The path to the directory to restore",
|
|
)
|
|
|
|
store_parser = subparsers.add_parser(
|
|
"store", help="Move target and create symlink in place", parents=[base_parser]
|
|
)
|
|
store_parser.add_argument(
|
|
"name",
|
|
help="The name of the directory that will be created in the store path",
|
|
)
|
|
store_parser.add_argument(
|
|
"target_path",
|
|
help="The path to the directory to be stored",
|
|
)
|
|
|
|
return parser.parse_args()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|