Sunil Mohan Adapa 32737a16ed
email: Rename app from email_server to email
For simplicity and consistency. Eliminate '_' in the name.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-03-02 07:36:40 -05:00

40 lines
901 B
Python

# SPDX-License-Identifier: AGPL-3.0-or-later
import contextlib
import logging
import os
import uuid
logger = logging.getLogger(__name__)
def log_subprocess(result):
logger.critical('Subprocess returned %d', result.returncode)
logger.critical('Stdout: %r', result.stdout)
logger.critical('Stderr: %r', result.stderr)
@contextlib.contextmanager
def atomically_rewrite(filepath):
successful = False
tmp = '%s.%s.plinth-tmp' % (filepath, uuid.uuid4().hex)
fd = open(tmp, 'x')
try:
# Let client write to a temporary file
yield fd
successful = True
finally:
fd.close()
try:
if successful:
# Invoke rename(2) to atomically replace the original
os.rename(tmp, filepath)
finally:
# Delete temp file
try:
os.unlink(tmp)
except FileNotFoundError:
pass