[object Object]

← back to Letsbegin

chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)

2c41f83739bc4c9c0fec22364797222d49d51b80 · 2026-07-03 08:08:07 -0700 · Steve

Files touched

Diff

commit 2c41f83739bc4c9c0fec22364797222d49d51b80
Author: Steve <steve@designerwallcoverings.com>
Date:   Fri Jul 3 08:08:07 2026 -0700

    chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)
---
 color-family-harvest.js   | 4 ++--
 color-family-write.js     | 4 ++--
 last20day_full_monty.js   | 2 +-
 run-last20-fullmonty.sh   | 4 ++--
 rw-cost-write.js          | 2 +-
 rw-price-group-slice16.js | 2 +-
 rw-price-group-slice17.js | 2 +-
 rw-price-group-slice19.js | 2 +-
 rw-price-group-slice2.js  | 2 +-
 9 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/color-family-harvest.js b/color-family-harvest.js
index 200047a..51ca2ae 100644
--- a/color-family-harvest.js
+++ b/color-family-harvest.js
@@ -12,7 +12,7 @@ const { execSync } = require('child_process');
 
 const STORE = 'designer-laboratory-sandbox.myshopify.com';
 const TOKEN = (() => {
-  const line = fs.readFileSync('/Users/stevestudio2/Projects/secrets-manager/.env', 'utf8')
+  const line = fs.readFileSync('/Users/macstudio3/Projects/secrets-manager/.env', 'utf8')
     .split('\n').find(l => l.startsWith('SHOPIFY_ADMIN_TOKEN='));
   return line.split('=').slice(1).join('=').trim().replace(/^"|"$/g, '');
 })();
@@ -65,7 +65,7 @@ async function main(){
   const ids = execSync(`${PSQL} -U stevestudio2 -d dw_unified -t -A -c "SELECT shopify_id FROM shopify_products WHERE created_at_shopify >= now()-interval '20 days' ORDER BY created_at_shopify DESC;"`)
     .toString().trim().split('\n').map(s=>s.trim()).filter(Boolean);
   console.error(`cohort: ${ids.length} ids`);
-  const out = fs.createWriteStream('/Users/stevestudio2/Projects/Letsbegin/color-family-cohort.jsonl');
+  const out = fs.createWriteStream('/Users/macstudio3/Projects/Letsbegin/color-family-cohort.jsonl');
   let n=0;
   for(const gid of ids){
     const r = await gql({query:`{ product(id:"${gid}"){ title metafields(first:50){edges{node{namespace key value}}} } }`});
diff --git a/color-family-write.js b/color-family-write.js
index 508f4e4..35d1ca7 100644
--- a/color-family-write.js
+++ b/color-family-write.js
@@ -21,7 +21,7 @@ const { mapVendorColorToFamily, hexToFamily } = require('./color-family-map.js')
 
 const STORE = 'designer-laboratory-sandbox.myshopify.com';
 const TOKEN = (() => {
-  const line = fs.readFileSync('/Users/stevestudio2/Projects/secrets-manager/.env', 'utf8')
+  const line = fs.readFileSync('/Users/macstudio3/Projects/secrets-manager/.env', 'utf8')
     .split('\n').find(l => l.startsWith('SHOPIFY_ADMIN_TOKEN='));
   return line.split('=').slice(1).join('=').trim().replace(/^"|"$/g, '');
 })();
@@ -61,7 +61,7 @@ function familyFor(rec){
 }
 
 async function main(){
-  let recs = fs.readFileSync('/Users/stevestudio2/Projects/Letsbegin/color-family-cohort.jsonl','utf8')
+  let recs = fs.readFileSync('/Users/macstudio3/Projects/Letsbegin/color-family-cohort.jsonl','utf8')
     .trim().split('\n').map(l=>JSON.parse(l)).filter(r=>!r.missing);
   if(ONLY) recs = recs.filter(r=>ONLY.has(r.id));
   recs = recs.slice(0, LIMIT===Infinity ? recs.length : LIMIT);
diff --git a/last20day_full_monty.js b/last20day_full_monty.js
index 3570ab1..27d5acc 100644
--- a/last20day_full_monty.js
+++ b/last20day_full_monty.js
@@ -36,7 +36,7 @@ const GEMINI_KEY = process.env.GEMINI_API_KEY;
 if (!GEMINI_KEY) { console.error('FATAL: GEMINI_API_KEY environment variable is required'); process.exit(1); }
 if (!TOKEN) { console.error('FATAL: SHOPIFY_ADMIN_TOKEN environment variable is required'); process.exit(1); }
 
-const LOG_FILE = '/Users/stevestudio2/Projects/Letsbegin/last20day-backfill.log';
+const LOG_FILE = '/Users/macstudio3/Projects/Letsbegin/last20day-backfill.log';
 const API = '/admin/api/2024-10/graphql.json';
 
 // --limit N
diff --git a/run-last20-fullmonty.sh b/run-last20-fullmonty.sh
index bf473ca..73ce130 100755
--- a/run-last20-fullmonty.sh
+++ b/run-last20-fullmonty.sh
@@ -3,7 +3,7 @@
 # Pulls ONLY the two needed keys (avoids a zsh parse error on a malformed line in the .env),
 # then execs node. pm2 starts THIS script.
 set -euo pipefail
-SECRETS=/Users/stevestudio2/Projects/secrets-manager/.env
+SECRETS=/Users/macstudio3/Projects/secrets-manager/.env
 export SHOPIFY_ADMIN_TOKEN="$(grep -m1 '^SHOPIFY_ADMIN_TOKEN=' "$SECRETS" | cut -d= -f2-)"
 export GEMINI_API_KEY="$(grep -m1 '^GEMINI_API_KEY=' "$SECRETS" | cut -d= -f2-)"
-exec node /Users/stevestudio2/Projects/Letsbegin/last20day_full_monty.js "$@"
+exec node /Users/macstudio3/Projects/Letsbegin/last20day_full_monty.js "$@"
diff --git a/rw-cost-write.js b/rw-cost-write.js
index 0ef488b..3109508 100644
--- a/rw-cost-write.js
+++ b/rw-cost-write.js
@@ -48,7 +48,7 @@ function loadEnv(path) {
     }
   } catch { /* file optional if env already set */ }
 }
-loadEnv('/Users/stevestudio2/Projects/secrets-manager/.env');
+loadEnv('/Users/macstudio3/Projects/secrets-manager/.env');
 
 const STORE = process.env.SHOPIFY_STORE || 'designer-laboratory-sandbox.myshopify.com';
 const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN || process.env.SHOPIFY_PRODUCT_TOKEN;
diff --git a/rw-price-group-slice16.js b/rw-price-group-slice16.js
index f97007f..5cc3d3a 100644
--- a/rw-price-group-slice16.js
+++ b/rw-price-group-slice16.js
@@ -30,7 +30,7 @@ function loadEnv(path) {
     }
   } catch { /* ok */ }
 }
-loadEnv('/Users/stevestudio2/Projects/secrets-manager/.env');
+loadEnv('/Users/macstudio3/Projects/secrets-manager/.env');
 
 const STORE = process.env.SHOPIFY_STORE || 'designer-laboratory-sandbox.myshopify.com';
 const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN || process.env.SHOPIFY_PRODUCT_TOKEN;
diff --git a/rw-price-group-slice17.js b/rw-price-group-slice17.js
index fecabcb..655264e 100644
--- a/rw-price-group-slice17.js
+++ b/rw-price-group-slice17.js
@@ -32,7 +32,7 @@ function loadEnv(path) {
     }
   } catch { /* ok */ }
 }
-loadEnv('/Users/stevestudio2/Projects/secrets-manager/.env');
+loadEnv('/Users/macstudio3/Projects/secrets-manager/.env');
 
 const STORE = process.env.SHOPIFY_STORE || 'designer-laboratory-sandbox.myshopify.com';
 const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN || process.env.SHOPIFY_PRODUCT_TOKEN;
diff --git a/rw-price-group-slice19.js b/rw-price-group-slice19.js
index 596d799..4819ed9 100644
--- a/rw-price-group-slice19.js
+++ b/rw-price-group-slice19.js
@@ -31,7 +31,7 @@ function loadEnv(path) {
     }
   } catch { /* ok */ }
 }
-loadEnv('/Users/stevestudio2/Projects/secrets-manager/.env');
+loadEnv('/Users/macstudio3/Projects/secrets-manager/.env');
 
 const STORE = process.env.SHOPIFY_STORE || 'designer-laboratory-sandbox.myshopify.com';
 const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN || process.env.SHOPIFY_PRODUCT_TOKEN;
diff --git a/rw-price-group-slice2.js b/rw-price-group-slice2.js
index 7c8eb08..538e1b9 100644
--- a/rw-price-group-slice2.js
+++ b/rw-price-group-slice2.js
@@ -29,7 +29,7 @@ function loadEnv(path) {
     }
   } catch { /* ok */ }
 }
-loadEnv('/Users/stevestudio2/Projects/secrets-manager/.env');
+loadEnv('/Users/macstudio3/Projects/secrets-manager/.env');
 
 const STORE = process.env.SHOPIFY_STORE || 'designer-laboratory-sandbox.myshopify.com';
 const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN || process.env.SHOPIFY_PRODUCT_TOKEN;

← 76bceba auto-save: 2026-06-21T18:53:00 (9 files) — rw-fix-rollprice.  ·  back to Letsbegin  ·  Strip hardcoded Shopify API tokens from source (env-first); 24d29e1 →