[object Object]

← back to Dw Photo Capture

Auto-refresh mfr# index: hourly incremental (8-18) + nightly full rebuild

b974240a16d463c44685a3f9097ce9dce6598d9a · 2026-06-25 17:37:03 -0700 · Steve

- refresh_mfr_index.py: incremental merge of only products updated since last build
  (seconds, $0) so same-day-imported SKUs are scannable within the hour
- build_mfr_index.py: stamp _meta.built_at for the incremental baseline
- launchd/: com.steve.dwphoto-mfr-refresh (hourly 8am-6pm incremental) +
  com.steve.dwphoto-mfr-rebuild (3am full rebuild) — both bootstrapped + verified

Files touched

Diff

commit b974240a16d463c44685a3f9097ce9dce6598d9a
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Jun 25 17:37:03 2026 -0700

    Auto-refresh mfr# index: hourly incremental (8-18) + nightly full rebuild
    
    - refresh_mfr_index.py: incremental merge of only products updated since last build
      (seconds, $0) so same-day-imported SKUs are scannable within the hour
    - build_mfr_index.py: stamp _meta.built_at for the incremental baseline
    - launchd/: com.steve.dwphoto-mfr-refresh (hourly 8am-6pm incremental) +
      com.steve.dwphoto-mfr-rebuild (3am full rebuild) — both bootstrapped + verified
---
 launchd/com.steve.dwphoto-mfr-rebuild.plist | 21 ++++++++++++++++++
 launchd/com.steve.dwphoto-mfr-refresh.plist | 33 +++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+)

diff --git a/launchd/com.steve.dwphoto-mfr-rebuild.plist b/launchd/com.steve.dwphoto-mfr-rebuild.plist
new file mode 100644
index 0000000..31f659d
--- /dev/null
+++ b/launchd/com.steve.dwphoto-mfr-rebuild.plist
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>Label</key>
+  <string>com.steve.dwphoto-mfr-rebuild</string>
+  <key>ProgramArguments</key>
+  <array>
+    <string>/usr/bin/python3</string>
+    <string>/Users/stevestudio2/Projects/dw-photo-capture/build_mfr_index.py</string>
+  </array>
+  <key>WorkingDirectory</key>
+  <string>/Users/stevestudio2/Projects/dw-photo-capture</string>
+  <key>StartCalendarInterval</key>
+  <dict><key>Hour</key><integer>3</integer><key>Minute</key><integer>0</integer></dict>
+  <key>StandardOutPath</key>
+  <string>/Users/stevestudio2/Projects/dw-photo-capture/mfr-rebuild.log</string>
+  <key>StandardErrorPath</key>
+  <string>/Users/stevestudio2/Projects/dw-photo-capture/mfr-rebuild.log</string>
+</dict>
+</plist>
diff --git a/launchd/com.steve.dwphoto-mfr-refresh.plist b/launchd/com.steve.dwphoto-mfr-refresh.plist
new file mode 100644
index 0000000..0b8ae00
--- /dev/null
+++ b/launchd/com.steve.dwphoto-mfr-refresh.plist
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>Label</key>
+  <string>com.steve.dwphoto-mfr-refresh</string>
+  <key>ProgramArguments</key>
+  <array>
+    <string>/usr/bin/python3</string>
+    <string>/Users/stevestudio2/Projects/dw-photo-capture/refresh_mfr_index.py</string>
+  </array>
+  <key>WorkingDirectory</key>
+  <string>/Users/stevestudio2/Projects/dw-photo-capture</string>
+  <key>StartCalendarInterval</key>
+  <array>
+    <dict><key>Hour</key><integer>8</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>9</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>10</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>11</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>12</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>13</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>14</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>15</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>16</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>17</integer><key>Minute</key><integer>0</integer></dict>
+    <dict><key>Hour</key><integer>18</integer><key>Minute</key><integer>0</integer></dict>
+  </array>
+  <key>StandardOutPath</key>
+  <string>/Users/stevestudio2/Projects/dw-photo-capture/mfr-refresh.log</string>
+  <key>StandardErrorPath</key>
+  <string>/Users/stevestudio2/Projects/dw-photo-capture/mfr-refresh.log</string>
+</dict>
+</plist>

← dcb3fda auto-save: 2026-06-25T17:36:07 (2 files) — build_mfr_index.p  ·  back to Dw Photo Capture  ·  Scan: audible 'yoo-hoo' cue on code lock-in (v41) 89ca632 →