appydave-tools 0.32.5 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f5ec68e10319c834195d1d532dde3905667346a9b6f47d1f1bc9a6c572dec7ee
4
- data.tar.gz: f129cbf56dd364102c9e50b931a1004ddc207c53d5580b6205bf985e7d6dec20
3
+ metadata.gz: 7dae60a45e72f5c3a8b551750c4728a037ee8584b436989dd700daa78f3ee8a1
4
+ data.tar.gz: 7b26dbf29f2d47524832504a2ef5fd2a021efd9a458a61477a19dccd22a56fb0
5
5
  SHA512:
6
- metadata.gz: 4f7a53af93d69177a6d070d9737011a0cfa92397275897264485aad59bdd036222d87e96ebda41b3267b25abac7caf4d5e6f6448675b8375ec16a83e85636263
7
- data.tar.gz: e8d72b24314db79bd1120142f7cedd74d8ec9286dfd2ef537010d4ecfafefbaaff81a5897acdd3f769466c3c12704ead8f976015191a5305de328c754c6f8716
6
+ metadata.gz: 36090c84bffcf2e1e0dc581b8af16d3adc2e2a89eaf2a0c47a264479006d7365b8099ee1998ec6b15e360797108bb42632b09edeadef84479f2c1d8734f401d8
7
+ data.tar.gz: 84e6011c4bc9ad9d4ec692b147d82542df34413a4faccd7056964bf6c5b2ae394328368db6a4b7a9f7c12f10503fd3a56f30476212f06733a6fbe70dc9f359ea
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [0.32.5](https://github.com/appydave/appydave-tools/compare/v0.32.4...v0.32.5) (2025-11-21)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * use original brand key in Config.project_path calls for projects_subfolder support - ensures correct path construction for brands with subfolder setting ([3966f16](https://github.com/appydave/appydave-tools/commit/3966f16a0465b9508bf899fa77a619ae6c0ea94a))
7
+
1
8
  ## [0.32.4](https://github.com/appydave/appydave-tools/compare/v0.32.3...v0.32.4) (2025-11-21)
2
9
 
3
10
 
data/bin/dam CHANGED
@@ -1125,7 +1125,7 @@ class VatCLI
1125
1125
  exit 1
1126
1126
  end
1127
1127
 
1128
- # rubocop:disable Metrics/MethodLength
1128
+ # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
1129
1129
  def scan_single_brand_s3(brand_arg)
1130
1130
  puts "🔄 Scanning S3 for #{brand_arg}..."
1131
1131
  puts ''
@@ -1161,7 +1161,12 @@ class VatCLI
1161
1161
 
1162
1162
  manifest = JSON.parse(File.read(manifest_path), symbolize_names: true)
1163
1163
 
1164
- # Merge S3 scan data into manifest
1164
+ # Identify matched and orphaned S3 projects
1165
+ local_project_ids = manifest[:projects].map { |p| p[:id] }
1166
+ matched_s3_projects = results.keys.select { |project_id| local_project_ids.include?(project_id) }
1167
+ orphaned_s3_projects = results.keys.reject { |project_id| local_project_ids.include?(project_id) }
1168
+
1169
+ # Merge S3 scan data into manifest for matched projects
1165
1170
  updated_count = 0
1166
1171
  manifest[:projects].each do |project|
1167
1172
  project_id = project[:id]
@@ -1186,10 +1191,24 @@ class VatCLI
1186
1191
  puts " Projects in S3: #{results.size}"
1187
1192
  puts " Projects in manifest: #{total_manifest_projects}"
1188
1193
  puts " Updated #{updated_count} projects in manifest"
1189
- if results.size != total_manifest_projects
1194
+
1195
+ if orphaned_s3_projects.any?
1190
1196
  puts ''
1191
- puts " âš ī¸ Mismatch: #{results.size} S3 projects vs #{total_manifest_projects} local projects"
1192
- puts " This may indicate projects exist locally but haven't been uploaded to S3 yet"
1197
+ puts ' âš ī¸ Orphaned S3 folders (no local project):'
1198
+ orphaned_s3_projects.each do |project_id|
1199
+ s3_data = results[project_id]
1200
+ size = format_bytes(s3_data[:total_bytes])
1201
+ puts " - #{project_id} (#{s3_data[:file_count]} files, #{size})"
1202
+ end
1203
+ puts ''
1204
+ puts ' These folders exist in S3 but have no corresponding local project.'
1205
+ puts ' Consider cleaning them up with: dam s3-cleanup'
1206
+ end
1207
+
1208
+ if matched_s3_projects.size < total_manifest_projects
1209
+ missing_count = total_manifest_projects - matched_s3_projects.size
1210
+ puts ''
1211
+ puts " â„šī¸ #{missing_count} local project(s) not yet uploaded to S3"
1193
1212
  end
1194
1213
  puts ''
1195
1214
  end
@@ -1236,7 +1255,20 @@ class VatCLI
1236
1255
  puts ''
1237
1256
  puts "Total brands scanned: #{successful.size}/#{results.size}"
1238
1257
  end
1239
- # rubocop:enable Metrics/MethodLength
1258
+ # rubocop:enable Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
1259
+
1260
+ # Format bytes in human-readable format
1261
+ # rubocop:disable Style/FormatStringToken
1262
+ def format_bytes(bytes)
1263
+ return '0 B' if bytes.zero?
1264
+
1265
+ units = %w[B KB MB GB TB]
1266
+ exp = (Math.log(bytes) / Math.log(1024)).to_i
1267
+ exp = [exp, units.length - 1].min
1268
+
1269
+ format('%.1f %s', bytes.to_f / (1024**exp), units[exp])
1270
+ end
1271
+ # rubocop:enable Style/FormatStringToken
1240
1272
  end
1241
1273
 
1242
1274
  # Run CLI
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.32.5'
5
+ VERSION = '0.33.0'
6
6
  end
7
7
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appydave-tools",
3
- "version": "0.32.5",
3
+ "version": "0.33.0",
4
4
  "description": "AppyDave YouTube Automation Tools",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appydave-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.32.5
4
+ version: 0.33.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys