appydave-tools 0.65.0 → 0.66.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: '018d3a90eaad36f1ac6089615800619b751ad7a398e3f29ceebb3690b8fec7e4'
4
- data.tar.gz: b8b5920c74e273724d5a5750d63f9b09f4ffc637e5af21f8fded09da8cce55d2
3
+ metadata.gz: 49b33917d15a258c9667a68d5fb8590788c62e1fb767cb3b875a18c05af2f319
4
+ data.tar.gz: 3c14d3121215a6b84d25f892be0d0443006668cfc9d6984b881ebd6474d2a027
5
5
  SHA512:
6
- metadata.gz: 9b61ce6b01dc9c7b865f4a0af340c49e3d537f45eb43bf61e420c4f1d7df6aead0bc210390b18bdb479a4d197a7b7d274558180ebb66070b5353e444bb33112a
7
- data.tar.gz: 42e60c347dcd50fcc1714e046b228271e1363b868566f58b09cf3a0c317d65a51a47de5dce5adebe2e42a5c2281d346afc3a43a10e5c68500ba0ecd726a4d67a
6
+ metadata.gz: ef00bcc7bc6291daca49f5268e6fd55ed5d61e06f35485a989c77494f04ae445c301cad2edeb5d6f8ddc95a4e4887d0318a6592264ecb1bd2704f9f569a65709
7
+ data.tar.gz: 1f0d07a95afd62100c7e8816f5e9a1ef039f818281678dc647ed3447e8c3e836c84e918b56f1ebdf2525f9657d70b19e5cfd2d0b7230160435fdfed3d195ed03
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [0.65.0](https://github.com/appydave/appydave-tools/compare/v0.64.0...v0.65.0) (2025-11-22)
2
+
3
+
4
+ ### Features
5
+
6
+ * add last S3 sync time to brand status showing most recent file in s3-staging folders ([d373b66](https://github.com/appydave/appydave-tools/commit/d373b66e6323521be3d750a9330769fa33b4fed2))
7
+
1
8
  # [0.64.0](https://github.com/appydave/appydave-tools/compare/v0.63.0...v0.64.0) (2025-11-22)
2
9
 
3
10
 
data/bin/dam CHANGED
@@ -129,6 +129,7 @@ class VatCLI
129
129
 
130
130
  # List brands and projects
131
131
  def list_command(args)
132
+ detailed = args.include?('--detailed')
132
133
  args = args.reject { |arg| arg.start_with?('--') || arg.start_with?('-') }
133
134
 
134
135
  brand_arg = args[0]
@@ -136,7 +137,7 @@ class VatCLI
136
137
 
137
138
  if brand_arg.nil?
138
139
  # List all brands with summary
139
- Appydave::Tools::Dam::ProjectListing.list_brands_with_counts
140
+ Appydave::Tools::Dam::ProjectListing.list_brands_with_counts(detailed: detailed)
140
141
  elsif pattern_arg
141
142
  # Pattern matching
142
143
  Appydave::Tools::Dam::ProjectListing.list_with_pattern(brand_arg, pattern_arg)
@@ -10,7 +10,7 @@ module Appydave
10
10
  # Project listing functionality for VAT
11
11
  class ProjectListing
12
12
  # List all brands with summary table
13
- def self.list_brands_with_counts
13
+ def self.list_brands_with_counts(detailed: false)
14
14
  brands = Config.available_brands
15
15
 
16
16
  if brands.empty?
@@ -19,27 +19,53 @@ module Appydave
19
19
  end
20
20
 
21
21
  # Gather brand data
22
- brand_data = brands.map { |brand| collect_brand_data(brand) }
23
-
24
- # Print table header
25
- puts 'BRAND KEY PROJECTS SIZE LAST MODIFIED GIT S3 SYNC'
26
- puts '-' * 130
27
-
28
- # Print table rows
29
- brand_data.each do |data|
30
- # Format: "shortcut - Name" (simplified display)
31
- brand_display = "#{data[:shortcut]} - #{data[:name]}"
32
-
33
- puts format(
34
- '%-30s %-12s %10d %12s %20s %-15s %-10s',
35
- brand_display,
36
- data[:key],
37
- data[:count],
38
- format_size(data[:size]),
39
- format_date(data[:modified]),
40
- data[:git_status],
41
- data[:s3_sync]
42
- )
22
+ brand_data = brands.map { |brand| collect_brand_data(brand, detailed: detailed) }
23
+
24
+ if detailed
25
+ # Detailed view with additional columns
26
+ header = 'BRAND KEY PROJECTS SIZE LAST MODIFIED ' \
27
+ 'GIT S3 SYNC PATH SSD BACKUP ' \
28
+ 'WORKFLOW ACTIVE'
29
+ puts header
30
+ puts '-' * 200
31
+
32
+ brand_data.each do |data|
33
+ brand_display = "#{data[:shortcut]} - #{data[:name]}"
34
+
35
+ puts format(
36
+ '%-30s %-12s %10d %12s %20s %-15s %-10s %-35s %-30s %-10s %6d',
37
+ brand_display,
38
+ data[:key],
39
+ data[:count],
40
+ format_size(data[:size]),
41
+ format_date(data[:modified]),
42
+ data[:git_status],
43
+ data[:s3_sync],
44
+ shorten_path(data[:path]),
45
+ data[:ssd_backup] || 'N/A',
46
+ data[:workflow] || 'N/A',
47
+ data[:active_count] || 0
48
+ )
49
+ end
50
+ else
51
+ # Default view
52
+ puts 'BRAND KEY PROJECTS SIZE LAST MODIFIED GIT S3 SYNC'
53
+ puts '-' * 130
54
+
55
+ brand_data.each do |data|
56
+ brand_display = "#{data[:shortcut]} - #{data[:name]}"
57
+
58
+ puts format(
59
+ '%-30s %-12s %10d %12s %20s %-15s %-10s',
60
+ brand_display,
61
+ data[:key],
62
+ data[:count],
63
+ format_size(data[:size]),
64
+ format_date(data[:modified]),
65
+ data[:git_status],
66
+ data[:s3_sync]
67
+ )
68
+ end
43
69
  end
44
70
 
45
71
  # Print footer summary
@@ -241,7 +267,7 @@ module Appydave
241
267
  end
242
268
 
243
269
  # Collect brand data for display
244
- def self.collect_brand_data(brand)
270
+ def self.collect_brand_data(brand, detailed: false)
245
271
  Appydave::Tools::Configuration::Config.configure
246
272
  brand_info = Appydave::Tools::Configuration::Config.brands.get_brand(brand)
247
273
  brand_path = Config.brand_path(brand)
@@ -262,7 +288,7 @@ module Appydave
262
288
  # Get S3 sync status (count of projects with s3-staging)
263
289
  s3_sync_status = calculate_s3_sync_status(brand, projects)
264
290
 
265
- {
291
+ result = {
266
292
  shortcut: shortcut || key,
267
293
  key: key,
268
294
  name: name || key.capitalize,
@@ -273,6 +299,31 @@ module Appydave
273
299
  git_status: git_status,
274
300
  s3_sync: s3_sync_status
275
301
  }
302
+
303
+ # Add detailed fields if requested
304
+ if detailed
305
+ # SSD backup path
306
+ ssd_backup = brand_info.locations.ssd_backup
307
+ ssd_backup = nil if ssd_backup.nil? || ssd_backup.empty? || ssd_backup == 'NOT-SET'
308
+
309
+ # Workflow type (inferred from projects_subfolder setting)
310
+ workflow = brand_info.settings.projects_subfolder == 'projects' ? 'storyline' : 'flivideo'
311
+
312
+ # Active project count (projects with flat structure, not archived)
313
+ active_count = projects.count do |project|
314
+ project_path = Config.project_path(brand, project)
315
+ # Check if not in archived/ subfolder
316
+ !project_path.include?('/archived/')
317
+ end
318
+
319
+ result.merge!(
320
+ ssd_backup: ssd_backup ? shorten_path(ssd_backup) : nil,
321
+ workflow: workflow,
322
+ active_count: active_count
323
+ )
324
+ end
325
+
326
+ result
276
327
  end
277
328
 
278
329
  # Calculate git status for a brand
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.65.0'
5
+ VERSION = '0.66.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.65.0",
3
+ "version": "0.66.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.65.0
4
+ version: 0.66.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys