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 +4 -4
- data/CHANGELOG.md +14 -0
- data/lib/appydave/tools/dam/project_listing.rb +39 -0
- data/lib/appydave/tools/dam/status.rb +46 -0
- data/lib/appydave/tools/version.rb +1 -1
- data/package.json +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d2ee9f523cadcc7a664c9eb568dbafd833363a011e60f006bcb249e5fa45e768
|
|
4
|
+
data.tar.gz: 11f6b4a34e4a13969674557b2bc56f19f4e4ae1a56487fc62e9e5279bab305a2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
data/package.json
CHANGED
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.
|
|
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-
|
|
11
|
+
date: 2025-11-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activemodel
|