From fe779a9a97a33d5201ff92ba96161af13e17c73d Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Thu, 30 Oct 2025 09:13:46 +0100 Subject: [PATCH] introduce .xrforge folder --- manyfold/cli/manyfold.sh | 1 - manyfold/root/hook.d/boot/httpserver.sh | 2 +- .../hook.d/experience_updated/10-reset-log.sh | 4 ++- .../300-package_experience_zip.sh | 4 +-- .../300-package_godot_zip.sh | 4 +-- .../experience_updated/300-package_janusxr.sh | 14 ++++---- .../experience_updated/300-package_xrf.rb | 2 +- .../src/app/app/views/models/show.html.erb | 34 ++++++++++++------- 8 files changed, 38 insertions(+), 27 deletions(-) diff --git a/manyfold/cli/manyfold.sh b/manyfold/cli/manyfold.sh index 92db37b..8bdf9b9 100755 --- a/manyfold/cli/manyfold.sh +++ b/manyfold/cli/manyfold.sh @@ -130,7 +130,6 @@ mount_dir(){ find /mnt -type d -mindepth 1 -maxdepth 1 | while read dir; do echocolor "[$APPNAME]" "mounting $dir as library" add_lib_to_db "$dir" - ln -s "$dir" /usr/src/app/public/. done } diff --git a/manyfold/root/hook.d/boot/httpserver.sh b/manyfold/root/hook.d/boot/httpserver.sh index 040fc23..a87db6b 100755 --- a/manyfold/root/hook.d/boot/httpserver.sh +++ b/manyfold/root/hook.d/boot/httpserver.sh @@ -17,5 +17,5 @@ test -n "$FEDERATE_DRIVE_CERT" && test -m "$FEDERATE_DRIVE_KEY" && { set -x rclone serve http \ - --poll-interval $FEDERATE_DRIVE_CACHE \ + --exclude .xrforge --poll-interval $FEDERATE_DRIVE_CACHE \ --addr 0.0.0.0:$FEDERATE_DRIVE_PORT ${AUTH} ${SSL} $FEDERATE_DRIVE_PATH &> /var/log/rclone.log & diff --git a/manyfold/root/hook.d/experience_updated/10-reset-log.sh b/manyfold/root/hook.d/experience_updated/10-reset-log.sh index 9086ec0..04b22d4 100755 --- a/manyfold/root/hook.d/experience_updated/10-reset-log.sh +++ b/manyfold/root/hook.d/experience_updated/10-reset-log.sh @@ -1,4 +1,6 @@ #!/bin/sh -cd "$(dirname $1)" +dir="$(dirname $1)/.xrforge" +mkdir -p "$dir" || true +cd "$dir" echo "[v] reset log.txt" date > log.txt diff --git a/manyfold/root/hook.d/experience_updated/300-package_experience_zip.sh b/manyfold/root/hook.d/experience_updated/300-package_experience_zip.sh index 8a78396..bebdbe6 100755 --- a/manyfold/root/hook.d/experience_updated/300-package_experience_zip.sh +++ b/manyfold/root/hook.d/experience_updated/300-package_experience_zip.sh @@ -1,5 +1,5 @@ #!/bin/sh dir="$(dirname $1)" cd "$dir" -echo "[package_experience.sh] zipping $dir.zip" -zip -r "$dir".zip $dir/* +echo "[package_experience.sh] zipping experience.zip" +zip -D ".xrforge/experience.zip * | tee -a .xrforge/log.txt diff --git a/manyfold/root/hook.d/experience_updated/300-package_godot_zip.sh b/manyfold/root/hook.d/experience_updated/300-package_godot_zip.sh index 3db70f8..29b7516 100755 --- a/manyfold/root/hook.d/experience_updated/300-package_godot_zip.sh +++ b/manyfold/root/hook.d/experience_updated/300-package_godot_zip.sh @@ -1,10 +1,10 @@ #!/bin/sh dir="$(dirname $1)" cd "$dir" -echo "[package_experience.sh] zipping $dir.zip" +echo "[package_godot_zip.sh] zipping godot.zip" # overwrite empty godot template project-zip with given URL test -n "$GODOT_TEMPLATE_ZIP" && timeout 50 wget "$GODOT_TEMPLATE_ZIP" -O ~/template_godot.zip cp ~/template_godot.zip package_godot.zip -zip package_godot.zip *.glb *.usdz *.obj +zip .xrforge/godot.zip *.glb *.usdz *.obj diff --git a/manyfold/root/hook.d/experience_updated/300-package_janusxr.sh b/manyfold/root/hook.d/experience_updated/300-package_janusxr.sh index f3d4679..7dd5f8b 100755 --- a/manyfold/root/hook.d/experience_updated/300-package_janusxr.sh +++ b/manyfold/root/hook.d/experience_updated/300-package_janusxr.sh @@ -6,6 +6,7 @@ echo "[package_janusxr.sh] packing janusxr.html" glb=$(ls *.glb | head -n1) # todo: check datapackage.json instead of first match jml=' + janusxr room @@ -13,16 +14,17 @@ jml=' - -   - -   + + + + + + - ' -echo "$jml" > janusxr.html +echo "$jml" > .xrforge/janusxr.html diff --git a/manyfold/root/hook.d/experience_updated/300-package_xrf.rb b/manyfold/root/hook.d/experience_updated/300-package_xrf.rb index 1488658..3f76304 100755 --- a/manyfold/root/hook.d/experience_updated/300-package_xrf.rb +++ b/manyfold/root/hook.d/experience_updated/300-package_xrf.rb @@ -15,7 +15,7 @@ begin # Read and parse the JSON file data = JSON.parse(File.read(filename)) - logfile = File.join( File.dirname(filename), "log.txt" ) + logfile = File.join( File.dirname(filename), ".xrforge/log.txt" ) XRForge.log("✅ starting XR fragments check", logfile, true) diff --git a/manyfold/usr/src/app/app/views/models/show.html.erb b/manyfold/usr/src/app/app/views/models/show.html.erb index 92b16c5..a1d9400 100644 --- a/manyfold/usr/src/app/app/views/models/show.html.erb +++ b/manyfold/usr/src/app/app/views/models/show.html.erb @@ -68,24 +68,32 @@ <%= link_to @model.creator.name, @model.creator, itemprop: "author" %> <% end %> + <% if ENV['FEDERATE_DRIVE_HOST'].present? %> - <%= link_to "JanusXR room", "/"+@model.library.name+"/"+@model.path.gsub("#","%23")+"/janusxr.html" %> - - - - - - <%= link_to "zip archive", "/"+@model.library.name+"/"+@model.path.gsub("#","%23")+".zip" %> - - - - - - <%= link_to "Godot project", "/"+@model.library.name+"/"+@model.path.gsub("#","%23")+"/package_godot.zip" %> + <%= link_to "JanusXR room", ENV['FEDERATE_DRIVE_HOST']+"/"+@model.library.name+"/"+@model.path.gsub("#","%23")+"/.xrforge/janusxr.html" %> + + + + + <%= link_to "zip archive", "/"+@model.library.name+"/"+@model.path.gsub("#","%23")+"/.xrforge/experience.zip" %> + + + + + + <%= link_to "build log", ENV['FEDERATE_DRIVE_HOST']+"/"+@model.library.name+"/.xrforge/log.txt" %> + + + + + + <%= link_to "Godot project", "/"+@model.library.name+"/"+@model.path.gsub("#","%23")+"/.xrforge/godot.zip" %> + + <% end %> <% if @model.collection %> <%= icon "collection", Collection.model_name.human(count: 100) %>