forked from shaba/openuds
Adding early stage unlinks...[F
This commit is contained in:
parent
e7fe802b1d
commit
3e67ef2f6b
@ -188,6 +188,12 @@ class UDSClient(QtWidgets.QMainWindow):
|
|||||||
def endScript():
|
def endScript():
|
||||||
# Wait a bit before start processing ending sequence
|
# Wait a bit before start processing ending sequence
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
|
try:
|
||||||
|
# Remove early stage files...
|
||||||
|
tools.unlinkFiles(early=True)
|
||||||
|
except Exception as e:
|
||||||
|
logger.debug('Unlinking files on early stage: %s', e)
|
||||||
|
|
||||||
# After running script, wait for stuff
|
# After running script, wait for stuff
|
||||||
try:
|
try:
|
||||||
logger.debug('Wating for tasks to finish...')
|
logger.debug('Wating for tasks to finish...')
|
||||||
@ -197,10 +203,9 @@ def endScript():
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
logger.debug('Unlinking files')
|
logger.debug('Unlinking files')
|
||||||
tools.unlinkFiles()
|
tools.unlinkFiles(early=False)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.debug('Unlinking files: %s', e)
|
logger.debug('Unlinking files on later stage: %s', e)
|
||||||
|
|
||||||
|
|
||||||
# Removing
|
# Removing
|
||||||
try:
|
try:
|
||||||
@ -323,7 +328,13 @@ if __name__ == "__main__":
|
|||||||
app.setStyle('plastique') # type: ignore
|
app.setStyle('plastique') # type: ignore
|
||||||
else:
|
else:
|
||||||
logger.debug('Platform is Mac OS, adding homebrew possible paths')
|
logger.debug('Platform is Mac OS, adding homebrew possible paths')
|
||||||
os.environ['PATH'] += ''.join(os.pathsep + i for i in ('/usr/local/bin', '/opt/homebrew/bin',))
|
os.environ['PATH'] += ''.join(
|
||||||
|
os.pathsep + i
|
||||||
|
for i in (
|
||||||
|
'/usr/local/bin',
|
||||||
|
'/opt/homebrew/bin',
|
||||||
|
)
|
||||||
|
)
|
||||||
logger.debug('Now path is %s', os.environ['PATH'])
|
logger.debug('Now path is %s', os.environ['PATH'])
|
||||||
|
|
||||||
# First parameter must be url
|
# First parameter must be url
|
||||||
|
@ -47,7 +47,7 @@ except ImportError:
|
|||||||
|
|
||||||
from .log import logger
|
from .log import logger
|
||||||
|
|
||||||
_unlinkFiles: typing.List[str] = []
|
_unlinkFiles: typing.List[typing.Tuple[str, bool]] = []
|
||||||
_tasksToWait: typing.List[typing.Tuple[typing.Any, bool]] = []
|
_tasksToWait: typing.List[typing.Tuple[typing.Any, bool]] = []
|
||||||
_execBeforeExit: typing.List[typing.Callable[[], None]] = []
|
_execBeforeExit: typing.List[typing.Callable[[], None]] = []
|
||||||
|
|
||||||
@ -131,25 +131,27 @@ def getHostName() -> str:
|
|||||||
# Queing operations (to be executed before exit)
|
# Queing operations (to be executed before exit)
|
||||||
|
|
||||||
|
|
||||||
def addFileToUnlink(filename: str) -> None:
|
def addFileToUnlink(filename: str, early: bool = False) -> None:
|
||||||
'''
|
'''
|
||||||
Adds a file to the wait-and-unlink list
|
Adds a file to the wait-and-unlink list
|
||||||
'''
|
'''
|
||||||
_unlinkFiles.append(filename)
|
_unlinkFiles.append((filename, early))
|
||||||
|
|
||||||
|
|
||||||
def unlinkFiles() -> None:
|
def unlinkFiles(early: bool = False) -> None:
|
||||||
'''
|
'''
|
||||||
Removes all wait-and-unlink files
|
Removes all wait-and-unlink files
|
||||||
'''
|
'''
|
||||||
if _unlinkFiles:
|
filesToUnlink = list(filter(lambda x: x[1] == early, _unlinkFiles))
|
||||||
time.sleep(5) # Wait 5 seconds before deleting anything
|
if filesToUnlink:
|
||||||
|
# Wait 2 seconds before deleting anything on early and 5 on later stages
|
||||||
|
time.sleep(1 + 2 * (1 + int(early)))
|
||||||
|
|
||||||
for f in _unlinkFiles:
|
for f in _unlinkFiles:
|
||||||
try:
|
try:
|
||||||
os.unlink(f)
|
os.unlink(f[0])
|
||||||
except Exception:
|
except Exception as e:
|
||||||
pass
|
logger.debug('File %s not deleted: %s', f[0], e)
|
||||||
|
|
||||||
|
|
||||||
def addTaskToWait(taks: typing.Any, includeSubprocess: bool = False) -> None:
|
def addTaskToWait(taks: typing.Any, includeSubprocess: bool = False) -> None:
|
||||||
@ -158,7 +160,7 @@ def addTaskToWait(taks: typing.Any, includeSubprocess: bool = False) -> None:
|
|||||||
|
|
||||||
def waitForTasks() -> None:
|
def waitForTasks() -> None:
|
||||||
logger.debug('Started to wait %s', _tasksToWait)
|
logger.debug('Started to wait %s', _tasksToWait)
|
||||||
for task, waitForSubp in sorted(_tasksToWait, key=lambda x: int(x[1])):
|
for task, waitForSubp in _tasksToWait:
|
||||||
logger.debug('Waiting for task %s, subprocess wait: %s', task, waitForSubp)
|
logger.debug('Waiting for task %s, subprocess wait: %s', task, waitForSubp)
|
||||||
try:
|
try:
|
||||||
if hasattr(task, 'join'):
|
if hasattr(task, 'join'):
|
||||||
@ -168,7 +170,9 @@ def waitForTasks() -> None:
|
|||||||
# If wait for spanwed process (look for process with task pid) and we can look for them...
|
# If wait for spanwed process (look for process with task pid) and we can look for them...
|
||||||
if psutil and waitForSubp and hasattr(task, 'pid'):
|
if psutil and waitForSubp and hasattr(task, 'pid'):
|
||||||
logger.debug('Waiting for subprocesses...')
|
logger.debug('Waiting for subprocesses...')
|
||||||
for i in filter(lambda x: x.ppid() == task.pid, psutil.process_iter(attrs=('ppid',))):
|
for i in filter(
|
||||||
|
lambda x: x.ppid() == task.pid, psutil.process_iter(attrs=('ppid',))
|
||||||
|
):
|
||||||
logger.debug('Found %s', i)
|
logger.debug('Found %s', i)
|
||||||
i.wait()
|
i.wait()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
Loading…
Reference in New Issue
Block a user