diff --git a/.gitignore b/.gitignore
index cb967f45..b7b533b4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,7 @@ copyparty/res/COPYING.txt
copyparty/web/deps/
srv/
scripts/docker/i/
+scripts/deps-docker/uncomment.py
contrib/package/arch/pkg/
contrib/package/arch/src/
diff --git a/copyparty/web/svcs.html b/copyparty/web/svcs.html
index ef8847e9..65038deb 100644
--- a/copyparty/web/svcs.html
+++ b/copyparty/web/svcs.html
@@ -192,6 +192,7 @@
partyfuse
partyfuse.py -- fast, read-only,
+ needs fuse.py in the same folder,
needs winfsp
doesn't need root
diff --git a/scripts/deps-docker/Dockerfile b/scripts/deps-docker/Dockerfile
index a59c15a5..a66191ee 100644
--- a/scripts/deps-docker/Dockerfile
+++ b/scripts/deps-docker/Dockerfile
@@ -37,6 +37,7 @@ RUN mkdir -p /z/dist/no-pk \
&& wget https://github.com/google/zopfli/archive/zopfli-$ver_zopfli.tar.gz -O zopfli.tgz \
&& wget https://github.com/Daninet/hash-wasm/releases/download/v$ver_hashwasm/hash-wasm@$ver_hashwasm.zip -O hash-wasm.zip \
&& wget https://github.com/PrismJS/prism/archive/refs/tags/v$ver_prism.tar.gz -O prism.tgz \
+ && wget https://files.pythonhosted.org/packages/04/0b/4506cb2e831cea4b0214d3625430e921faaa05a7fb520458c75a2dbd2152/fusepy-3.0.1.tar.gz -O fusepy.tgz \
&& (mkdir hash-wasm \
&& cd hash-wasm \
&& unzip ../hash-wasm.zip) \
@@ -56,6 +57,7 @@ RUN mkdir -p /z/dist/no-pk \
&& npm i gulp-cli -g ) \
&& tar -xf dompurify.tgz \
&& tar -xf prism.tgz \
+ && tar -xf fusepy.tgz \
&& unzip fontawesome.zip \
&& tar -xf zopfli.tgz
@@ -158,6 +160,18 @@ RUN cd /z/dist \
&& rmdir no-pk
+# build fusepy
+COPY uncomment.py /z
+RUN mv /z/fusepy-3.0.1/fuse.py /z/dist/f1 \
+ && cd /z/dist \
+ && python3 /z/uncomment.py f1 \
+ && sed -ri '/self.__critical_exception = e/d' f1 \
+ && awk '/^log =/{s=0} !s; /^from traceback im/{s=1;print"from functools import partial";print"basestring = str"}' f2 \
+ && awk '/LoggingMixIn:/{exit} /Time as floating/{s=3}--s<0' f1 \
+ && awk "/if _machine =/{s=0} /'(mips|ppc|ppc64)'/{s=1} !s" f2 \
+ && rm f1 && mv f2 fuse.py
+
+
# git diff -U2 --no-index marked-1.1.0-orig/ marked-1.1.0-edit/ -U2 | sed -r '/^index /d;s`^(diff --git a/)[^/]+/(.* b/)[^/]+/`\1\2`; s`^(---|\+\+\+) ([ab]/)[^/]+/`\1 \2`' > ../dev/copyparty/scripts/deps-docker/marked-ln.patch
# d=/home/ed/dev/copyparty/scripts/deps-docker/; tar -cf ../x . && ssh root@$bip "cd $d && tar -xv >&2 && make >&2 && tar -cC ../../copyparty/web deps" <../x | (cd ../../copyparty/web/; cat > the.tgz; tar -xvf the.tgz; rm the.tgz)
# gzip -dkf ../dev/copyparty/copyparty/web/deps/deps/marked.full.js.gz && diff -NarU2 ../dev/copyparty/copyparty/web/deps/{,deps/}marked.full.js
diff --git a/scripts/deps-docker/Makefile b/scripts/deps-docker/Makefile
index 4951d11e..dcd1f03f 100644
--- a/scripts/deps-docker/Makefile
+++ b/scripts/deps-docker/Makefile
@@ -4,8 +4,10 @@ vend := $(self)/../../copyparty/web/deps
# prefers podman-docker (optionally rootless) over actual docker/moby
all:
+ cp -pv ../uncomment.py .
+
docker build -t build-copyparty-deps .
-
+
rm -rf $(vend)
mkdir $(vend)
diff --git a/scripts/make-sfx.sh b/scripts/make-sfx.sh
index 474d2f39..34ecbe2f 100755
--- a/scripts/make-sfx.sh
+++ b/scripts/make-sfx.sh
@@ -437,7 +437,7 @@ rm -f ftp/pyftpdlib/{__main__,prefork}.py
rm -rf copyparty/mdns.py copyparty/stolen/dnslib
[ $no_pf ] &&
- rm -rf copyparty/web/a/partyfuse.py
+ rm -rf copyparty/web/a/partyfuse.py copyparty/web/deps/fuse.py
[ $no_cm ] && {
rm -rf copyparty/web/mde.* copyparty/web/deps/easymde*
diff --git a/scripts/sfx.ls b/scripts/sfx.ls
index 5fc14001..46d5eb40 100644
--- a/scripts/sfx.ls
+++ b/scripts/sfx.ls
@@ -84,6 +84,7 @@ copyparty/web/deps/__init__.py,
copyparty/web/deps/busy.mp3,
copyparty/web/deps/easymde.css,
copyparty/web/deps/easymde.js,
+copyparty/web/deps/fuse.py,
copyparty/web/deps/marked.js,
copyparty/web/deps/mini-fa.css,
copyparty/web/deps/mini-fa.woff,