mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-04-29 18:22:37 +02:00
Use the dangerzone cache dir for temporary files in all OSes, not just Linux
This commit is contained in:
parent
9536a4db41
commit
14fe8add58
1 changed files with 12 additions and 19 deletions
|
@ -2,6 +2,7 @@ import os
|
||||||
import stat
|
import stat
|
||||||
import platform
|
import platform
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import appdirs
|
||||||
|
|
||||||
|
|
||||||
class Common(object):
|
class Common(object):
|
||||||
|
@ -11,26 +12,16 @@ class Common(object):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# Temporary directory to store pixel data and safe PDFs
|
# Temporary directory to store pixel data and safe PDFs
|
||||||
if platform.system() == "Windows":
|
cache_dir = appdirs.user_cache_dir("dangerzone")
|
||||||
self.pixel_dir = tempfile.TemporaryDirectory(prefix="dangerzone-pixel-")
|
os.makedirs(cache_dir, exist_ok=True)
|
||||||
self.safe_dir = tempfile.TemporaryDirectory(prefix="dangerzone-safe-")
|
self.pixel_dir = tempfile.TemporaryDirectory(
|
||||||
elif platform.system() == "Darwin":
|
prefix=os.path.join(cache_dir, "pixel-")
|
||||||
# In macOS, temp dirs must be in /tmp (or a few other paths) for Docker to mount them
|
)
|
||||||
self.pixel_dir = tempfile.TemporaryDirectory(
|
self.safe_dir = tempfile.TemporaryDirectory(
|
||||||
prefix="/tmp/dangerzone-pixel-"
|
prefix=os.path.join(cache_dir, "safe-")
|
||||||
)
|
)
|
||||||
self.safe_dir = tempfile.TemporaryDirectory(prefix="/tmp/dangerzone-safe-")
|
|
||||||
else:
|
|
||||||
# In Linux, temp dirs must be in the homedir for the snap package version of Docker to mount them
|
|
||||||
cache_dir = os.path.expanduser("~/.cache/dangerzone")
|
|
||||||
os.makedirs(cache_dir, exist_ok=True)
|
|
||||||
self.pixel_dir = tempfile.TemporaryDirectory(
|
|
||||||
prefix=os.path.join(cache_dir, "pixel-")
|
|
||||||
)
|
|
||||||
self.safe_dir = tempfile.TemporaryDirectory(
|
|
||||||
prefix=os.path.join(cache_dir, "safe-")
|
|
||||||
)
|
|
||||||
|
|
||||||
|
try:
|
||||||
# Make the folders world-readable to ensure that the container has permission
|
# Make the folders world-readable to ensure that the container has permission
|
||||||
# to access it even if it's owned by root or someone else
|
# to access it even if it's owned by root or someone else
|
||||||
permissions = (
|
permissions = (
|
||||||
|
@ -44,6 +35,8 @@ class Common(object):
|
||||||
)
|
)
|
||||||
os.chmod(self.pixel_dir.name, permissions)
|
os.chmod(self.pixel_dir.name, permissions)
|
||||||
os.chmod(self.safe_dir.name, permissions)
|
os.chmod(self.safe_dir.name, permissions)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
# Name of input and out files
|
# Name of input and out files
|
||||||
self.document_filename = None
|
self.document_filename = None
|
||||||
|
|
Loading…
Reference in a new issue