77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
import os
|
|
import shutil
|
|
import getpass
|
|
from custom_nodes.EternalKernelLiteGraphNodes.local_shared import ETK_PATH, GDE_PATH
|
|
|
|
import time
|
|
|
|
|
|
def set_file_mtime(file_path, mtime):
|
|
"""
|
|
Set the modified time of the file to the specified time.
|
|
|
|
:param file_path: Path of the file to modify.
|
|
:param mtime: The new modified time as a timestamp (seconds since the epoch).
|
|
"""
|
|
atime = os.path.getatime(file_path) # keep the original access time
|
|
os.utime(file_path, (atime, mtime))
|
|
|
|
|
|
def check_directory_permissions(directory):
|
|
if not os.path.exists(directory):
|
|
os.makedirs(directory)
|
|
elif not os.access(directory, os.R_OK | os.W_OK):
|
|
raise PermissionError(f"Insufficient permissions for directory {directory}")
|
|
|
|
|
|
def check_for_js_extension():
|
|
web_ext_path = os.path.normpath(os.path.join(GDE_PATH, "web", "extensions", "etk"))
|
|
repo_file_path = os.path.join(ETK_PATH)
|
|
|
|
# Check permissions for both directories
|
|
check_directory_permissions(web_ext_path)
|
|
check_directory_permissions(repo_file_path)
|
|
|
|
for fn in ["ui_modifications.js", "ui_helpers.js"]:
|
|
|
|
file_web_path = os.path.join(web_ext_path, fn)
|
|
file_repo_path = os.path.join(repo_file_path, fn)
|
|
|
|
try:
|
|
file_web_date = os.path.getmtime(file_web_path)
|
|
except FileNotFoundError:
|
|
file_web_date = 0
|
|
|
|
try:
|
|
file_repo_date = os.path.getmtime(file_repo_path)
|
|
except FileNotFoundError:
|
|
raise FileNotFoundError(
|
|
f"File {file_repo_path} does not exist. Please check that the ETK_PATH is set correctly."
|
|
)
|
|
|
|
if file_web_date == file_repo_date:
|
|
print(f"Files are identical: {file_web_path} = {file_repo_path}")
|
|
continue
|
|
|
|
if file_web_date > file_repo_date:
|
|
direction = "web -> repo"
|
|
from_file = file_web_path
|
|
to_file = file_repo_path
|
|
from_time = file_web_date
|
|
else:
|
|
direction = "repo -> web"
|
|
from_file = file_repo_path
|
|
to_file = file_web_path
|
|
from_time = file_repo_date
|
|
|
|
print(f"Copying {direction}: {from_file} -> {to_file}")
|
|
shutil.copyfile(from_file, to_file)
|
|
set_file_mtime(to_file, from_time)
|
|
|
|
|
|
# Print the current user
|
|
current_user = getpass.getuser()
|
|
print(f"This script is being executed as user: {current_user}")
|
|
|
|
check_for_js_extension()
|