Merged
Conversation
andi34
requested changes
Mar 22, 2026
995e422 to
c4d1a53
Compare
c4d1a53 to
7705b15
Compare
7484e43 to
68de9dd
Compare
Contributor
|
Adjustments inside docs/ ? |
7760f98 to
a400d98
Compare
Contributor
Author
Done. |
23a3391 to
55f0b8b
Compare
added 3 commits
March 26, 2026 17:21
USB Sync (sync-to-drive.js):
- blkid fallback when lsblk does not report labels (LXC, USB reconnect)
- Layered mount: udisksctl → findmnt check → sudo mount with
FAT32/exFAT uid/gid options; re-mount if not writable
- Exclude backup dir from rsync --delete-before
- Single scheduleRetry() guard to prevent double retry chains
- Dry-run validation uses /bin/bash matching the actual spawn
- Shell-quote all paths in sudo commands
- Null-check in handleSignal kill timeout
Move2USB (remotebuzzer-server.js):
- Same robust mount/unmount and blkid fallback as USB Sync
- copy.chk verification: marker file must appear on USB after rsync
- Use disarmTrigger() with rearm timeout safety net
- Call photoboothAction('completed') on config parse failure
- try/catch and null-check in deleteFiles to prevent locked trigger
- Shell-quote all paths in sudo commands
Installer (install-photobooth.sh):
- Polkit JS rule: remove non-existent subject.isUser so the rule
works on modern distros (Debian 12+)
- Sudoers: restrict mount to /dev/* → /media/*, umount to /dev/*
- Call disable_automount() during fresh install
Language & docs:
- en.json: updated synctodrive and Move2USB manual strings
- New docs/faq/usb-sync.md with full setup, config, and troubleshooting
- FAQ index and remote-button docs updated with references
Made-with: Cursor
Made-with: Cursor
- Fix ESLint single-quote violations in shellQuote and rsync args (remotebuzzer-server.js, sync-to-drive.js) that caused CI build failure - Add usb-sync.md to mkdocs_remote.yml navigation - Fix socket.io command name: move2usb → start-move2usb in docs - Remove non-existent hardware button trigger claim from Move2USB docs - Document general_permissions() auto-installing USB mount permissions - Clarify sudoers paths, numeric uid/gid, unmount behavior, copy.chk cleanup, and legacy file removal in USB Sync docs Made-with: Cursor
b3e027b to
5aba175
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prerequisites checklist
What is the purpose of this pull request? (put an "x" next to an item)
This PR improves Linux USB picture sync (Synctodrive) and Remotebuzzer Move2USB end-to-end: OS permissions in the installer, correct verification after rsync, admin-facing copy in English, and matching FAQ content.
What changes did you make? (Give an overview)
Installer (
install-photobooth.sh)www-datacan use udisks2 mount/unmount where supported./etc/sudoers.d/021_www-data-usb-syncfor passwordlessmount/umountandmkdirunder/media(covers Node fallbacks used by sync / Move2USB).020_www-data-usbentry is removed.020/021).Application / server
remotebuzzer-server.js): after rsync, success is verified usingcopy.chkat the root of the mounted USB volume (aligned with where rsync places data).spawnSyncresults are checked (error/ non-zero exit).sync-to-drive.js: executable bit restored to matchdev(mode-only).i18n (English only; other locales via Crowdin)
resources/lang/en.json: Synctodrive / Move2USB manual strings updated for Polkit, sudoers, and installer-based re-apply after updates (no separate maintainer script in-tree).Intentionally not in this PR
package.jsonscripts) unless you want them split to another PR.Is there anything you'd like reviewers to focus on?
install-photobooth.sh→ Permissions → USB Sync policy (or full permissions step on fresh install) to get021and drop legacy020.copy.chklocation matches your expected stick layout after rsync in all deployments.AI used to create this Pull Request?
Yes. An AI assistant helped with implementation, installer/sudoers structure, log and manual wording, FAQ/MkDocs refresh. All changes were reviewed in-repo; JS was linted with ESLint.