appydave-tools 0.53.0 → 0.55.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: d6ee9f93f96b463691306934cb326aaa0f5852a68814ca292dea7ef6043d1aa9
4
- data.tar.gz: 2f7be8b118a201275b87d049d0f5131ccf1c59043b95a7e1170a155dc8603660
3
+ metadata.gz: d2ee9f523cadcc7a664c9eb568dbafd833363a011e60f006bcb249e5fa45e768
4
+ data.tar.gz: 11f6b4a34e4a13969674557b2bc56f19f4e4ae1a56487fc62e9e5279bab305a2
5
5
  SHA512:
6
- metadata.gz: 77f7a873ddc79add9dbbb84b1b6203a0daa6cb4af296a3154676fe0900cc39adc5fdf3b9cd3d614d0580f1768cc7f09bf55db4a7465e57159d3a255d0736362d
7
- data.tar.gz: a4813162d14a93d66205df3a03b3abcf6759657ae7cf0de83f778200959fe106c32b32b96ee4e81a747f0dc6d7e983cec0a1db61d572e25d11bad822eb2092dc
6
+ metadata.gz: b7a9ca99ce9fe351eb0440f353f6ded07bed8aa6dd675cc24dc9a92bb0321b33825ce2e03a5bc746acd294dda454b6b3f8a5360507f3282742cffbc0233cb674
7
+ data.tar.gz: fb0c3d660664c9eb0aaff6e5818a197cf4e278f383208c3037420d81f9dfc12af0296506aa946b2144bff9cc158fc492085b7a590fc17dbf9ad6bd6bba094a20
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [0.54.0](https://github.com/appydave/appydave-tools/compare/v0.53.0...v0.54.0) (2025-11-22)
2
+
3
+
4
+ ### Features
5
+
6
+ * add brand context header to project list showing git branch, S3 config, and SSD path ([48d9523](https://github.com/appydave/appydave-tools/commit/48d9523793501c933fb78e8b68b56e18206c3d61))
7
+
8
+ # [0.53.0](https://github.com/appydave/appydave-tools/compare/v0.52.0...v0.53.0) (2025-11-21)
9
+
10
+
11
+ ### Features
12
+
13
+ * improve s3-status error messages to distinguish non-existent projects from empty projects ([6c9db58](https://github.com/appydave/appydave-tools/commit/6c9db586f78b143c7bd71c86be34de95069d21b4))
14
+
1
15
  # [0.52.0](https://github.com/appydave/appydave-tools/compare/v0.51.0...v0.52.0) (2025-11-21)
2
16
 
3
17
 
@@ -68,6 +68,9 @@ module Appydave
68
68
  # Only expand brand for display purposes
69
69
  brand = Config.expand_brand(brand_arg)
70
70
 
71
+ # Show brand context header
72
+ show_brand_header(brand_arg, brand)
73
+
71
74
  if projects.empty?
72
75
  puts "⚠️ No projects found for brand: #{brand}"
73
76
  puts ''
@@ -188,6 +191,42 @@ module Appydave
188
191
 
189
192
  # Helper methods
190
193
 
194
+ # Show brand context header with git, S3, and SSD info
195
+ def self.show_brand_header(brand_arg, brand)
196
+ Appydave::Tools::Configuration::Config.configure
197
+ brand_info = Appydave::Tools::Configuration::Config.brands.get_brand(brand_arg)
198
+ brand_path = Config.brand_path(brand_arg)
199
+
200
+ puts "📂 Brand: #{brand}"
201
+ puts ''
202
+
203
+ # Git status
204
+ if Dir.exist?(File.join(brand_path, '.git'))
205
+ branch = GitHelper.current_branch(brand_path)
206
+ puts " Git: #{branch} branch"
207
+ else
208
+ puts ' Git: Not a git repository'
209
+ end
210
+
211
+ # S3 configuration
212
+ s3_bucket = brand_info.aws.s3_bucket
213
+ if s3_bucket && !s3_bucket.empty? && s3_bucket != 'NOT-SET'
214
+ puts " S3: Configured (#{s3_bucket})"
215
+ else
216
+ puts ' S3: Not configured'
217
+ end
218
+
219
+ # SSD backup path
220
+ ssd_backup = brand_info.locations.ssd_backup
221
+ if ssd_backup && !ssd_backup.empty? && ssd_backup != 'NOT-SET'
222
+ puts " SSD: #{shorten_path(ssd_backup)}"
223
+ else
224
+ puts ' SSD: Not configured'
225
+ end
226
+
227
+ puts ''
228
+ end
229
+
191
230
  # Calculate total size of all projects in a brand
192
231
  def self.calculate_total_size(brand, projects)
193
232
  projects.sum do |project|
@@ -76,6 +76,8 @@ module Appydave
76
76
  manifest = load_manifest
77
77
  if manifest
78
78
  show_manifest_summary(manifest)
79
+ puts ''
80
+ show_brand_suggestions(manifest)
79
81
  else
80
82
  puts '❌ Manifest not found'
81
83
  puts " Run: dam manifest #{brand}"
@@ -349,6 +351,50 @@ module Appydave
349
351
  '⚠️ Stale'
350
352
  end
351
353
  end
354
+
355
+ def show_brand_suggestions(manifest)
356
+ suggestions = []
357
+
358
+ # Check manifest age
359
+ if manifest[:config] && manifest[:config][:last_updated]
360
+ age = calculate_manifest_age(manifest[:config][:last_updated])
361
+ days = age / 86_400 if age
362
+ suggestions << "dam manifest #{brand} # Manifest is stale (#{days.round}d old)" if days && days > 7
363
+ end
364
+
365
+ # Check git status if repo exists
366
+ if git_repo?
367
+ status = git_status_info
368
+ if status[:modified_count].positive? || status[:untracked_count].positive?
369
+ suggestions << "git add . && git commit -m 'Update' # Uncommitted changes (#{status[:modified_count]} modified, #{status[:untracked_count]} untracked)"
370
+ end
371
+ if status[:ahead].positive?
372
+ suggestions << "git push # Push #{status[:ahead]} commit#{'s' if status[:ahead] != 1} to remote"
373
+ end
374
+ if status[:behind].positive?
375
+ suggestions << "git pull # Pull #{status[:behind]} commit#{'s' if status[:behind] != 1} from remote"
376
+ end
377
+ end
378
+
379
+ # Check for projects not backed up to SSD (task #43)
380
+ ssd_configured = brand_info.locations.ssd_backup &&
381
+ brand_info.locations.ssd_backup != 'NOT-SET'
382
+ if ssd_configured
383
+ projects_without_ssd = manifest[:projects].select do |p|
384
+ p[:storage][:local][:exists] && !p[:storage][:ssd][:exists]
385
+ end
386
+ if projects_without_ssd.any?
387
+ count = projects_without_ssd.size
388
+ suggestions << "dam archive #{brand} <project> # #{count} project#{'s' if count != 1} not backed up to SSD"
389
+ end
390
+ end
391
+
392
+ # Show suggestions if any
393
+ return unless suggestions.any?
394
+
395
+ puts '💡 Suggestions:'
396
+ suggestions.each { |s| puts " #{s}" }
397
+ end
352
398
  end
353
399
  end
354
400
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.53.0'
5
+ VERSION = '0.55.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.53.0",
3
+ "version": "0.55.0",
4
4
  "description": "AppyDave YouTube Automation Tools",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appydave-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.53.0
4
+ version: 0.55.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-11-21 00:00:00.000000000 Z
11
+ date: 2025-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel