main : adds subcommands, move to Path and improve

Multiple changes to the main file, after this unisync becomes kind of
usable.
Add subcommands : this uses the 2 previous commits to add the
subcommands to unisync it is now possible to sync, add and mount.
pathlib : move from PosixPath to Path
Remove unused imports
Rename base_namespace to cli_args
Add some comments and TODOs
This commit is contained in:
2026-01-01 23:19:57 +01:00
parent 885050cf84
commit addbdb87df

View File

@@ -3,24 +3,29 @@
import os import os
from argparser import create_argparser from argparser import create_argparser
from config import RootsConfig, ServerConfig, Config, load_config from runners import unisync_sync, unisync_add, unisync_mount
from config import load_config
from synchroniser import Synchroniser from synchroniser import Synchroniser
from pathlib import Path, PosixPath from pathlib import Path
from paths import * from paths import *
def main(): def main():
parser = create_argparser() parser = create_argparser(unisync_sync, unisync_add, unisync_mount)
base_namespace = parser.parse_args() cli_args = parser.parse_args()
config_path = os.path.expanduser("~/.config/unisync/config.ini") config_path = os.path.expanduser("~/.config/unisync/config.ini")
if base_namespace.config != None and os.path.isfile(base_namespace.config): # Check if --config is set
config = load_config(base_namespace.config) if cli_args.config != None and os.path.isfile(cli_args.config):
config = load_config(cli_args.config)
elif os.path.isfile(config_path): elif os.path.isfile(config_path):
config = load_config(config_path) config = load_config(config_path)
else: else:
# TODO make the command line arguments work and override the config options # TODO replace the next line with something to do if no config file is found
config = load_config(config_path)
pass pass
# TODO make the command line arguments work and override the config options
synchroniser = Synchroniser( synchroniser = Synchroniser(
config.roots.remote, config.roots.remote,
config.roots.local, config.roots.local,
@@ -33,18 +38,7 @@ def main():
paths_manager = PathsManager(Path(config.roots.local), config.other.cache_dir_path) paths_manager = PathsManager(Path(config.roots.local), config.other.cache_dir_path)
if synchroniser.create_ssh_master_connection() != 0: cli_args.func(synchroniser, paths_manager)
print("Connection failed quitting")
return 1
print("Connected to the remote.")
#synchroniser.sync_files()
#synchroniser.update_links(background=False)
#synchroniser.mount_remote_dir()
synchroniser.close_ssh_master_connection()
print(paths_manager.get_paths_to_sync())
if __name__ == "__main__": if __name__ == "__main__":