This commit is contained in:
ed 2020-08-07 20:00:30 +00:00
parent 9405597c15
commit ec29b59d1e
2 changed files with 68 additions and 46 deletions

View file

@ -47,21 +47,23 @@ dependencies (windows):
"""
WINDOWS = sys.platform == 'win32'
WINDOWS = sys.platform == "win32"
def print(*args, **kwargs):
try:
builtins.print(*list(args), **kwargs)
except:
builtins.print(termsafe(' '.join(str(x) for x in args)), **kwargs)
builtins.print(termsafe(" ".join(str(x) for x in args)), **kwargs)
def termsafe(txt):
try:
return txt.encode(sys.stdout.encoding, 'backslashreplace').decode(sys.stdout.encoding)
return txt.encode(sys.stdout.encoding, "backslashreplace").decode(
sys.stdout.encoding
)
except:
return txt.encode(sys.stdout.encoding, 'replace').decode(sys.stdout.encoding)
return txt.encode(sys.stdout.encoding, "replace").decode(sys.stdout.encoding)
def threadless_log(msg):
@ -100,7 +102,12 @@ def get_tid():
def html_dec(txt):
return txt.replace('&lt;', '<').replace('&gt;', '>').replace('&quot;', '"').replace('&amp;', '&')
return (
txt.replace("&lt;", "<")
.replace("&gt;", ">")
.replace("&quot;", '"')
.replace("&amp;", "&")
)
class CacheNode(object):
@ -565,11 +572,11 @@ class CPPF(Operations):
return True
def getxattr(self, *args):
log("@@ getxattr [{}]".format('] ['.join(str(x) for x in args)))
log("@@ getxattr [{}]".format("] [".join(str(x) for x in args)))
return False
def listxattr(self, *args):
log("@@ listxattr [{}]".format('] ['.join(str(x) for x in args)))
log("@@ listxattr [{}]".format("] [".join(str(x) for x in args)))
return False
def open(self, path, flags):
@ -592,7 +599,7 @@ class CPPF(Operations):
log("@@ statfs [{}]".format(path))
return {}
if sys.platform == 'win32':
if sys.platform == "win32":
# quick compat for /mingw64/bin/python3 (msys2)
def _open(self, path):
try:
@ -658,7 +665,14 @@ def main():
if WINDOWS:
os.system("")
FUSE(CPPF(remote), local, foreground=True, nothreads=True, allow_other=True, nonempty=True)
FUSE(
CPPF(remote),
local,
foreground=True,
nothreads=True,
allow_other=True,
nonempty=True,
)
if __name__ == "__main__":

View file

@ -23,9 +23,10 @@ from urllib.parse import quote_from_bytes as quote
try:
import fuse
from fuse import Fuse
fuse.fuse_python_api = (0, 2)
if not hasattr(fuse, '__version__'):
raise Exception('your fuse-python is way old')
if not hasattr(fuse, "__version__"):
raise Exception("your fuse-python is way old")
except:
print(
"\n could not import fuse; these may help:\n python3 -m pip install --user fuse-python\n apt install libfuse\n modprobe fuse\n"
@ -84,7 +85,12 @@ def get_tid():
def html_dec(txt):
return txt.replace('&lt;', '<').replace('&gt;', '>').replace('&quot;', '"').replace('&amp;', '&')
return (
txt.replace("&lt;", "<")
.replace("&gt;", ">")
.replace("&quot;", '"')
.replace("&amp;", "&")
)
class CacheNode(object):
@ -564,12 +570,14 @@ def main():
server = CPPF()
server.parser.add_option(mountopt="url", metavar="BASE_URL", default=None)
server.parse(values=server, errex=1)
if not server.url or not str(server.url).startswith('http'):
print('\nerror:')
print(' need argument: -o url=<...>')
print(' need argument: mount-path')
print('example:')
print(' ./copyparty-fuseb.py -f -o allow_other,auto_unmount,nonempty,url=http://192.168.1.69:3923 /mnt/nas')
if not server.url or not str(server.url).startswith("http"):
print("\nerror:")
print(" need argument: -o url=<...>")
print(" need argument: mount-path")
print("example:")
print(
" ./copyparty-fuseb.py -f -o allow_other,auto_unmount,nonempty,url=http://192.168.1.69:3923 /mnt/nas"
)
sys.exit(1)
server.init2()