Files

50 lines
1.6 KiB
Python

import os
from .metaclasses import Singleton
class ComfyFiles(metaclass=Singleton):
def __init__(self) -> None:
pass
@classmethod
def link_item(cls, src: str, dst: str) -> bool:
"""
Helper method to create a symlink or junction from source to destination
"""
from .logger import ComfyLogger
src = os.path.abspath(src)
dst = os.path.abspath(dst)
if os.name == "nt":
try:
import _winapi
_winapi.CreateJunction(src, dst)
ComfyLogger().log(f"Created junction from {src} to {dst}")
return True
except Exception as e:
ComfyLogger().log(f"Failed to create junction from {src} to {dst}\nException: {e}", type="ERROR", always=True)
return False
else:
try:
os.symlink(src, dst)
ComfyLogger().log(f"Created symlink from {src} to {dst}")
return True
except Exception as e:
ComfyLogger.log(f"Failed to create symlink from {src} to {dst}\nException: {e}", type="ERROR", always=True)
return False
@classmethod
def is_symlink(cls, path: str) -> bool:
"""
Helper method to check if a path is a symlink or junction
"""
from .logger import ComfyLogger
try:
if os.path.islink(path):
return True
else:
return False
except Exception as e:
ComfyLogger().log(f"Failed to read link from {path}\nException: {e}", type="ERROR", always=True)
return False