From 8924f70a593aaa686c742095caae899920044840 Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Tue, 5 Aug 2025 13:57:59 +0200 Subject: [PATCH] fix nixpkgs --- manyfold/README.md | 6 ++++-- manyfold/cli/manyfold.sh | 7 +++++-- .../hook.d/daily/package_experiences_zip.sh | 17 +++++++++++++++++ manyfold/root/hook.d/hourly/placeholder.sh | 2 -- ...xperience.sh => package_experience_zip.sh} | 0 .../root/hook.d/inotify_MODIFY/placeholder.sh | 1 - nix/docker.nix | 19 ++++++++++++++++--- 7 files changed, 42 insertions(+), 10 deletions(-) create mode 100755 manyfold/root/hook.d/daily/package_experiences_zip.sh delete mode 100755 manyfold/root/hook.d/hourly/placeholder.sh rename manyfold/root/hook.d/inotify_MODIFY/{package_experience.sh => package_experience_zip.sh} (100%) delete mode 120000 manyfold/root/hook.d/inotify_MODIFY/placeholder.sh diff --git a/manyfold/README.md b/manyfold/README.md index 4e1301a..2d0ada0 100644 --- a/manyfold/README.md +++ b/manyfold/README.md @@ -20,6 +20,7 @@ $ docker load < $(nix-build nix/docker.nix) | `NO_OVERLAYFS` | `` | disable the filesystem overlay mechanism | | `NO_DEFAULTDB` | `` | disable the default db (activates manyfold installer) | | `NO_DELETEBIGFILES` | `` | disable deleting big files which are older than 5 days and bigger than ($currentyear-2020) MB's | +| `NO_PACKAGEALL` | `` | don't package all experiences every hour to /usr/src/app/public/experiences.zip | | `RCLONE_REMOTE` | `` | specify **single** rclone remote name (without semicolon) to mount | | `UPLOAD_PATH` | `/mnt/models`| specify default library where user-files are uploaded (regular dir or mounted rclone path) | @@ -36,7 +37,7 @@ $ docker load < $(nix-build nix/docker.nix) The server-image will boot `manyfold/cli/manyfold.sh boot` and check for directory `/manyfold` (in the container). When found, it uses the files in there instead (`/manyfold/usr/src/app/public/404.html` instead of `/usr/src/app/public/404.html` e.g.). -# Remote network-drives (with models) +# Federated (remote) network-drives > Thanks to [rclone](https://rclone.org) network-drives automatically show up as manyfold libraries. @@ -72,6 +73,7 @@ You can put scripts in there, which are fired when needed. > Example: [manyfold/root/hook.d/daily/delete_big_files.sh] is triggered daily to cleanup files which exceed a certain age/size. -Currently inotify events (`inotify_MODIFY` e.g.) are triggered when files in `/mnt/models` change. +Currently inotify events (`inotify_MODIFY` e.g.) are triggered for local file-changes (`/mnt/models` e.g.). +In theory, federated drives can still be reacted upon, but by integrating with XRForge's ActivityPub (**Follow** feature e.g.) > Perhaps in the future this will also work for rclone remotes, by writing a `hourly`-script which scans them and fires `inotify_MODIFY` accordingly. diff --git a/manyfold/cli/manyfold.sh b/manyfold/cli/manyfold.sh index 8b57103..36fe945 100755 --- a/manyfold/cli/manyfold.sh +++ b/manyfold/cli/manyfold.sh @@ -77,7 +77,7 @@ start_hook_daemon(){ $0 infinite 86400 hook daily & $0 infinite 3600 hook hourly & # trigger hooks when files change in /mnt/models - inotifywait -r -m /mnt/models | awk '$2 ~ /(CREATE|MODIFY|MOVED_TO)/ { system("'$0' hook inotify_"$2" "$1""$3) }' & + inotifywait -r -m /mnt/models | awk '$2 ~ /(CREATE|MODIFY|MOVED_TO|DELETE)/ { system("'$0' hook inotify_"$2" "$1""$3) }' & } @@ -148,7 +148,10 @@ set_modelpath(){ rename_app(){ echocolor "[$APPNAME]" "renaming manyfold to $APPNAME" sed -i 's/title: Manyfold/title: '$APPNAME'/g' /usr/src/app/config/locales/*.yml - sed -i 's|powered_by_html:.*|powered_by_html: Powered by XR Forge, Manyfold, XR Fragments and NIX|g' /usr/src/app/config/locales/*.yml + sed -i 's|powered_by_html:.*|powered_by_html: Radically opensource-powered by XR Forge, Manyfold, XR Fragments and NIX|g' /usr/src/app/config/locales/*.yml + + sed -i 's|Models|Experiences|g' /usr/src/app/config/locales/*.yml + sed -i 's|Model|Experience|g' /usr/src/app/config/locales/*.yml } start_syslog(){ diff --git a/manyfold/root/hook.d/daily/package_experiences_zip.sh b/manyfold/root/hook.d/daily/package_experiences_zip.sh new file mode 100755 index 0000000..d6d997a --- /dev/null +++ b/manyfold/root/hook.d/daily/package_experiences_zip.sh @@ -0,0 +1,17 @@ +#!/bin/sh +test -n "$NO_PACKAGEALL" && exit 0; # nothing to do +cd /mnt/models +{ + echo "# XRForge experiences" + echo "" + echo "XRForge [$PUBLIC_HOSTNAME] snapshot made at $(date)" + echo "" + echo "# How to view" + echo "" + echo "You'll need a 3D app/website/viewer with:" + echo "" + echo "* support for multiple 3D fileformats" + echo "* XR Fragments support (at least href extras) to teleport between them" +} > /mnt/models/README.md + +zip -r /usr/src/app/public/experiences.zip * diff --git a/manyfold/root/hook.d/hourly/placeholder.sh b/manyfold/root/hook.d/hourly/placeholder.sh deleted file mode 100755 index 30d871f..0000000 --- a/manyfold/root/hook.d/hourly/placeholder.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -echo $0 $* diff --git a/manyfold/root/hook.d/inotify_MODIFY/package_experience.sh b/manyfold/root/hook.d/inotify_MODIFY/package_experience_zip.sh similarity index 100% rename from manyfold/root/hook.d/inotify_MODIFY/package_experience.sh rename to manyfold/root/hook.d/inotify_MODIFY/package_experience_zip.sh diff --git a/manyfold/root/hook.d/inotify_MODIFY/placeholder.sh b/manyfold/root/hook.d/inotify_MODIFY/placeholder.sh deleted file mode 120000 index d264ad3..0000000 --- a/manyfold/root/hook.d/inotify_MODIFY/placeholder.sh +++ /dev/null @@ -1 +0,0 @@ -../hourly/placeholder.sh \ No newline at end of file diff --git a/nix/docker.nix b/nix/docker.nix index 39c7b09..cbea10c 100644 --- a/nix/docker.nix +++ b/nix/docker.nix @@ -1,8 +1,21 @@ -{ pkgs ? import { } - , pkgsLinux ? import { system = "x86_64-linux"; } -}: +#{ pkgs ? import { } +# , pkgsLinux ? import { system = "x86_64-linux"; } +#}: +{} : let + pkgs = import (builtins.fetchGit { + #name = "nixos-24.05"; + #url = "https://github.com/nixos/nixpkgs/"; + #ref = "refs/heads/nixos-unstable"; + #rev = "ef99fa5c5ed624460217c31ac4271cfb5cb2502c"; + + name = "nixos-25.05"; + url = "https://github.com/NixOS/nixpkgs"; + rev = "b65adef5fe1f68db0bbd27dbb1d5f779805c2b8b"; + #hash = "sha256-P+QnQOEh8n+4terom/1ZijQYgv4SnrFLfRzIcFzT1MI="; + + }) {}; vars = import ./vars.nix; # generate the reproducable blob below via: