summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md15
1 files changed, 13 insertions, 2 deletions
diff --git a/README.md b/README.md
index a056891..adc19a6 100644
--- a/README.md
+++ b/README.md
@@ -32,6 +32,8 @@ back end, plain HTML/CSS/JS front end. Live at **https://albumen.jots.org**.
- Per-album: title, description, cover image (specific file or random), sub-album order, visibility
- Per-file: caption, visibility
- Save button at top and bottom of the edit form
+- **Run Update** button scans for new/removed files and generates missing thumbnails;
+ **Force rescan all** checkbox bypasses the sentinel and rescans every directory
### Media support
@@ -84,20 +86,29 @@ The update script walks the media tree, creates/updates `album.json` files with
EXIF dates and image dimensions, and pre-generates thumbnails.
```bash
-# On the server — process the entire tree
+# On the server — process the entire tree (skips unchanged directories)
ruby /opt/albumen/scripts/update.rb
-# Process only one album (and its sub-albums)
+# Process only one album (and its sub-albums) — always runs regardless of mtime
ruby /opt/albumen/scripts/update.rb 2024-Italy
# With an absolute path
ruby /opt/albumen/scripts/update.rb /var/albumen/2024-Italy
+
+# Force a full rescan of everything, ignoring all change detection
+ruby /opt/albumen/scripts/update.rb --force
```
**Resilience guarantees — safe to interrupt and re-run at any point:**
- `album.json` is written atomically (temp file + rename); no partial writes.
+- Unchanged directories are skipped via a `.albumen_scanned` sentinel file —
+ a global run with nothing new typically completes in under a second.
+- Providing an explicit directory bypasses the sentinel for that subtree, so
+ `update.rb some-album` always rescans that album even if nothing appears changed.
- Thumbnails that already exist are skipped entirely.
- EXIF metadata already recorded is not re-extracted.
+- Images with no EXIF data are marked `exif_absent` after the first attempt so
+ exiftool is not re-invoked on them in subsequent rescans.
- Deleted files are pruned from `album.json` automatically.
Typical workflow: