projects
/
kiosk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://wwwjail.house/usr/local/git/base/kiosk
[kiosk.git]
/
file_writer.py
diff --git
a/file_writer.py
b/file_writer.py
index 3cb2f39458fe475e99c438a5a38d0cd76572d874..08be646da19addde1ece563932adef2e521f9043 100644
(file)
--- a/
file_writer.py
+++ b/
file_writer.py
@@
-1,17
+1,26
@@
#!/usr/bin/env python3
#!/usr/bin/env python3
-import
constants
+import
logging
import os
import os
+from uuid import uuid4
+
+import kiosk_constants
+
+
+logger = logging.getLogger(__name__)
class file_writer:
"""Helper context to write a pages file."""
def __init__(self, filename: str, *, transformations=[]):
class file_writer:
"""Helper context to write a pages file."""
def __init__(self, filename: str, *, transformations=[]):
- self.full_filename = os.path.join(constants.pages_dir, filename)
+ temp = "temp-" + str(uuid4())
+ self.temp_filename = os.path.join(kiosk_constants.pages_dir, temp)
+ self.full_filename = os.path.join(kiosk_constants.pages_dir, filename)
self.xforms = [file_writer.remove_tricky_unicode]
self.xforms.extend(transformations)
self.f = None
self.xforms = [file_writer.remove_tricky_unicode]
self.xforms.extend(transformations)
self.f = None
+ logger.info(f"Writing {self.temp_filename}...")
@staticmethod
def remove_tricky_unicode(x: str) -> str:
@staticmethod
def remove_tricky_unicode(x: str) -> str:
@@
-29,11
+38,15
@@
class file_writer:
self.f.write(data.encode("utf-8"))
def __enter__(self):
self.f.write(data.encode("utf-8"))
def __enter__(self):
- self.f = open(self.
full
_filename, "wb")
+ self.f = open(self.
temp
_filename, "wb")
return self
def __exit__(self, exc_type, exc_value, exc_traceback):
self.close()
return self
def __exit__(self, exc_type, exc_value, exc_traceback):
self.close()
+ logger.info(f"Copying {self.temp_filename} to {self.full_filename}")
+ cmd = f'/bin/mv -f {self.temp_filename} "{self.full_filename}"'
+ os.system(cmd)
+ print(cmd)
def done(self):
self.close()
def done(self):
self.close()
@@
-45,6
+58,6
@@
class file_writer:
# Test
# def toupper(x):
# return x.upper()
# Test
# def toupper(x):
# return x.upper()
-#
+
# with file_writer("test", transformations=[toupper]) as fw:
# with file_writer("test", transformations=[toupper]) as fw:
-#
fw.write(u"Another test!!")
+# fw.write(u"Another test!!")