Bug fixes and small improvements
Fix : - paths : true instead of True - paths : Path has no len convert to str first to get the number of characters Improvements : - Replace all PosixPath by Path
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
from configparser import UNNAMED_SECTION
|
||||
from dataclasses import dataclass, field
|
||||
from pathlib import Path, PosixPath
|
||||
from pathlib import Path
|
||||
import ipaddress
|
||||
import configparser
|
||||
|
||||
@@ -13,10 +13,10 @@ class ServerConfig:
|
||||
Dataclass keeping the config for connecting to the server
|
||||
"""
|
||||
user: str
|
||||
sshargs: list[str] | None = field(default_factory=list)
|
||||
sshargs: str = ""
|
||||
hostname: str = ""
|
||||
ip: str = ""
|
||||
port: int = 22
|
||||
port: int | None = 22
|
||||
|
||||
def __post_init__(self):
|
||||
"""
|
||||
@@ -52,7 +52,7 @@ class OtherConfig:
|
||||
"""
|
||||
Dataclass keeping miscellanous configuration options
|
||||
"""
|
||||
cache_dir_path: PosixPath = Path("~/.unisync").expanduser()
|
||||
cache_dir_path: Path = Path("~/.unisync").expanduser()
|
||||
|
||||
@dataclass
|
||||
class Config:
|
||||
@@ -82,9 +82,9 @@ def load_config(config_path:str) -> Config:
|
||||
|
||||
server_config = ServerConfig(
|
||||
config.get(server_section, "user"),
|
||||
config.get(server_section, "sshargs", fallback=None),
|
||||
config.get(server_section, "hostname", fallback=None),
|
||||
config.get(server_section, "ip", fallback=None),
|
||||
config.get(server_section, "sshargs", fallback=""),
|
||||
config.get(server_section, "hostname", fallback=""),
|
||||
config.get(server_section, "ip", fallback=""),
|
||||
config.getint(server_section, "port", fallback=None)
|
||||
)
|
||||
roots_config = RootsConfig(
|
||||
|
||||
@@ -4,12 +4,13 @@
|
||||
|
||||
import os.path
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from pathlib import Path, PosixPath
|
||||
from pathlib import Path
|
||||
|
||||
class PathsManager:
|
||||
|
||||
def __init__(self, local_dir:PosixPath, cache_dir:PosixPath):
|
||||
def __init__(self, local_dir:Path, cache_dir:Path):
|
||||
"""
|
||||
Creates a PathsManager with the necessary data
|
||||
Args:
|
||||
@@ -24,7 +25,7 @@ class PathsManager:
|
||||
raise ValueError("Invalid cache directory")
|
||||
self.cache_dir = cache_dir
|
||||
|
||||
self.paths_file:PosixPath = self.cache_dir / "paths"
|
||||
self.paths_file:Path = self.cache_dir / "paths"
|
||||
if not self.paths_file.is_file():
|
||||
raise ValueError("The paths file does not exist")
|
||||
|
||||
@@ -48,7 +49,7 @@ class PathsManager:
|
||||
"-p", "-",
|
||||
self.local_dir
|
||||
]
|
||||
nnn_process = subprocess.Popen(command, stdout=subprocess.PIPE)
|
||||
nnn_process:subprocess.Popen = subprocess.Popen(command, stdout=subprocess.PIPE)
|
||||
try:
|
||||
ret_code = nnn_process.wait(timeout=choice_timeout)
|
||||
except subprocess.TimeoutExpired as e:
|
||||
@@ -57,18 +58,18 @@ class PathsManager:
|
||||
|
||||
if ret_code != 0:
|
||||
print("File selection failed", file=sys.stderr)
|
||||
raise subprocess.CalledProcessError("File selection failed")
|
||||
raise subprocess.CalledProcessError(1, "File selection failed")
|
||||
|
||||
paths_list:list[str] = []
|
||||
while (next_path := nnn_process.stdout.readline()) != b'':
|
||||
next_path = next_path.decode().strip()
|
||||
# Make the path relative to the top directory
|
||||
next_path = next_path[len(self.local_dir):].lstrip("/")
|
||||
next_path = next_path[len(str(self.local_dir)):].lstrip("/")
|
||||
paths_list.append(next_path)
|
||||
return paths_list
|
||||
|
||||
def add_files_to_sync(self):
|
||||
while true:
|
||||
while True:
|
||||
try:
|
||||
paths = self.user_select_files()
|
||||
break
|
||||
|
||||
@@ -182,7 +182,7 @@ class Synchroniser:
|
||||
- subprocess.CalledProcessError: An error occured with sshfs
|
||||
"""
|
||||
# Get the absolute path to the correct .data directory resolving symlinks
|
||||
path_to_mount:PosixPath = Path(f"{self.local}/../.data").resolve()
|
||||
path_to_mount:Path = Path(f"{self.local}/../.data").resolve()
|
||||
if path_to_mount.is_mount():
|
||||
raise RemoteMountedError
|
||||
# Check if it is an empty directory
|
||||
|
||||
Reference in New Issue
Block a user