appydave-tools 0.18.3 → 0.18.5

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: 224b91f6d2a3b037091d744166f54b656f408695edd9a3b4d5f8f0599f84c841
4
- data.tar.gz: aad4d21145e880dd65b31073e3c83e5165173638d4192a35d1da836d75159d60
3
+ metadata.gz: 94b533e9d8174f22fe36c1dbc435b1051ddef31ac461184741958e75ae451c47
4
+ data.tar.gz: 252ea976c625cd3a473c46e219e4595e7f568d6f5fdbb96060b8e399cb52fd48
5
5
  SHA512:
6
- metadata.gz: bf4d62d414afa97cd91115b7cea9e534d81641da2483528e551d4dcd043338055f8edd6be206ce0e8e0c3a1a8746568c1662110f275956c4b02fd2a201708f46
7
- data.tar.gz: 198cf5f25d43543b9cc7861cfde567a3452ae35f5c18c9e525e9958fd3efe8fc2c9fb0af751123f3df2bfd5f40f47e4e943a89a188736e8056df27d7f9d8b71b
6
+ metadata.gz: 1078bed7c6b2b0f4144af45d572a96c10ffa8e31d34f6dc100bc4094a847be67b500dfdf00c8e67a790e71f5e6946d29105fd37466f4412a9326dbdc509d139a
7
+ data.tar.gz: aa2c82acd177c562f5950b0610c05d4b278e76e44b9bd3af68d89a946dd8ffeb9cfc8359dd3e91f13d738058e7c0504978f9772640a3025bb3b2905044eec5d3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## [0.18.4](https://github.com/appydave/appydave-tools/compare/v0.18.3...v0.18.4) (2025-11-10)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * document dry-run and force flag support for all DAM commands in usage guide and test plan ([b4f54da](https://github.com/appydave/appydave-tools/commit/b4f54da17589b31c029d5ef62c92af8b3724ee2f))
7
+
8
+ ## [0.18.3](https://github.com/appydave/appydave-tools/compare/v0.18.2...v0.18.3) (2025-11-10)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * resolve archived structure detection and range folder calculation for DAM manifest and sync ([dec1400](https://github.com/appydave/appydave-tools/commit/dec1400c561f11959fb6aecd7761e916ca525082))
14
+ * resolve rubocop violations in manifest_generator (refactor build_project_entry, simplify SSD check) ([ced61be](https://github.com/appydave/appydave-tools/commit/ced61be41c3da352831d46e3486968f5ee55842c))
15
+
1
16
  ## [0.18.2](https://github.com/appydave/appydave-tools/compare/v0.18.1...v0.18.2) (2025-11-10)
2
17
 
3
18
 
@@ -30,17 +30,32 @@
30
30
  **Commands - Phase 2 Complete** (CLI args + auto-detect):
31
31
  - ✅ `dam s3-down` - Download from S3
32
32
  - ✅ `dam s3-status` - Check sync status
33
- - ✅ `dam s3-cleanup` - Delete S3 files
33
+ - ✅ `dam s3-cleanup-remote` / `s3-cleanup-local` - Delete S3/local files
34
34
 
35
- **Commands - Not Yet Migrated**:
36
- - `dam manifest` - Generate project manifest
37
- - `dam archive` - Archive to SSD
38
- - `dam sync-ssd` - Sync from SSD
35
+ **Commands - Phase 3 Complete** (Archive & Manifest):
36
+ - `dam manifest` - Generate project manifest (supports `--all` for all brands)
37
+ - `dam archive` - Archive to SSD with dry-run and force options
38
+ - `dam sync-ssd` - Restore light files from SSD (dry-run supported)
39
39
 
40
- **Utilities - Not Migrated** (not DAM commands):
41
- - ❌ `status-all.sh` - Git status for all repos (workflow script, not needed in gem)
42
- - `sync-all.sh` - Git pull for all repos (workflow script, not needed in gem)
43
- - ❌ `clone-all.sh` - Clone all repos (workflow script, not needed in gem)
40
+ **Git Repository Management Scripts - Intentionally Not Migrated**:
41
+
42
+ These are **shell scripts** for managing the multi-repo video-projects git structure, NOT video asset management commands:
43
+
44
+ - ❌ `status-all.sh` - Runs `git status` on all v-* brand repos (git workflow, not asset management)
45
+ - ❌ `sync-all.sh` - Runs `git pull` on all v-* brand repos (git workflow, not asset management)
46
+ - ❌ `clone-all.sh` - Clones all v-* brand repos if missing (git workflow, not asset management)
47
+
48
+ **Why not migrated:**
49
+ 1. These manage **git repositories**, not **video assets**
50
+ 2. They loop through brand folders running git commands
51
+ 3. They're workflow automation for the video-projects repo structure
52
+ 4. They belong in `/video-projects/v-shared/`, not in the appydave-tools gem
53
+ 5. Different use case: repo management vs. video file management
54
+
55
+ **If you want these migrated:** We could add `dam repo-status`, `dam repo-sync`, `dam repo-clone` commands, but they would:
56
+ - Need Ruby implementations of multi-repo git operations
57
+ - Duplicate functionality that shell scripts handle well
58
+ - Mix concerns (video assets vs. git repos)
44
59
 
45
60
  ---
46
61
 
@@ -113,6 +128,62 @@ dam list
113
128
 
114
129
  ---
115
130
 
131
+ ## Command Safety Features Reference
132
+
133
+ ### Dry-Run and Force Flag Support
134
+
135
+ All filesystem-modifying commands support `--dry-run` to preview changes before execution:
136
+
137
+ | Command | Dry-Run Support | Force Flag Required | What It Does |
138
+ |---------|----------------|---------------------|--------------|
139
+ | **s3-up** | ✅ Yes | No | Preview files to upload to S3 |
140
+ | **s3-down** | ✅ Yes | No | Preview files to download from S3 |
141
+ | **s3-cleanup-remote** | ✅ Yes | **Yes (`--force`)** | Preview S3 files to delete |
142
+ | **s3-cleanup-local** | ✅ Yes | **Yes (`--force`)** | Preview local s3-staging files to delete |
143
+ | **archive** | ✅ Yes | Optional (`--force` = delete local) | Preview project copy to SSD |
144
+ | **sync-ssd** | ✅ Yes | No | Preview light files to restore from SSD |
145
+
146
+ ### Read-Only Commands (No Dry-Run Needed)
147
+
148
+ These commands only read data and don't modify files:
149
+
150
+ | Command | Type | What It Does |
151
+ |---------|------|--------------|
152
+ | **list** | Read-only | List brands/projects |
153
+ | **manifest** | Generates JSON | Generate `projects.json` manifest |
154
+ | **s3-status** | Read-only | Check sync status |
155
+ | **help** | Read-only | Show help information |
156
+
157
+ ### Force Flag Behavior
158
+
159
+ Commands requiring `--force` provide extra protection for destructive operations:
160
+
161
+ - **s3-cleanup-remote**: Must use `--force` to delete S3 files (prevents accidental deletion)
162
+ - **s3-cleanup-local**: Must use `--force` to delete local staging files
163
+ - **archive**: Optional `--force` flag deletes local copy after successful SSD backup
164
+ - Without `--force`: Copies to SSD, keeps local copy intact
165
+ - With `--force`: Copies to SSD, then deletes local copy (frees disk space)
166
+
167
+ ### Safety Testing Workflow
168
+
169
+ **Always test with dry-run first:**
170
+
171
+ ```bash
172
+ # 1. Preview with dry-run
173
+ dam s3-up appydave b65 --dry-run
174
+ dam s3-cleanup-remote appydave b65 --force --dry-run
175
+ dam archive appydave b63 --dry-run
176
+
177
+ # 2. Review output carefully
178
+
179
+ # 3. Execute if safe
180
+ dam s3-up appydave b65
181
+ dam s3-cleanup-remote appydave b65 --force
182
+ dam archive appydave b63
183
+ ```
184
+
185
+ ---
186
+
116
187
  ## Test Suite
117
188
 
118
189
  ### Phase 1: Unit Tests (Automated - RSpec)
@@ -579,51 +650,51 @@ done
579
650
 
580
651
  ---
581
652
 
582
- ## Not Yet Implemented (Future Work)
653
+ ## All DAM Commands Implemented
583
654
 
584
- ### Commands Migrated but Not Updated for CLI Args
655
+ All video asset management commands have been successfully migrated and are fully functional:
585
656
 
586
- These commands were copied from the original DAM but still need Phase 2 updates:
657
+ ### Phase 1: Core Commands
658
+ - ✅ `dam help` - Comprehensive help system
659
+ - ✅ `dam list` - Project discovery with 4 modes
587
660
 
588
- #### Generate Manifest
589
- ```bash
590
- # Current: bin/generate_manifest.rb
591
- # Expected: dam manifest appydave
592
- ```
593
- **Status**: Copied but needs CLI arg support
594
- **Priority**: Low (utility command, not core workflow)
661
+ ### Phase 2: S3 Collaboration
662
+ - ✅ `dam s3-up` - Upload to S3 with dry-run
663
+ - `dam s3-down` - Download from S3 with dry-run
664
+ - `dam s3-status` - Check sync status
665
+ - ✅ `dam s3-cleanup-remote` - Delete S3 files (force + dry-run)
666
+ - `dam s3-cleanup-local` - Delete local staging (force + dry-run)
595
667
 
596
- ---
668
+ ### Phase 3: Archive & Manifest
669
+ - ✅ `dam manifest` - Generate project manifest (single brand or `--all`)
670
+ - ✅ `dam archive` - Archive to SSD (dry-run + optional force)
671
+ - ✅ `dam sync-ssd` - Restore light files from SSD (dry-run)
597
672
 
598
- #### Archive Project
599
- ```bash
600
- # Current: bin/archive_project.rb
601
- # Expected: dam archive appydave b63
602
- ```
603
- **Status**: Copied but needs CLI arg support
604
- **Priority**: Medium (used for completed projects)
673
+ ### All Commands Support:
674
+ - **CLI args**: `dam <command> <brand> <project>`
675
+ - **Auto-detect**: Works from project directory (where applicable)
676
+ - **Dry-run**: All destructive operations support `--dry-run`
677
+ - **Force flags**: Extra safety for deletions
605
678
 
606
679
  ---
607
680
 
608
- #### Sync from SSD
609
- ```bash
610
- # Current: bin/sync_from_ssd.rb
611
- # Expected: dam sync-ssd appydave
612
- ```
613
- **Status**: Copied but needs CLI arg support
614
- **Priority**: Medium (used for recovery)
681
+ ## Git Repository Scripts - Separate Concern
615
682
 
616
- ---
683
+ The following shell scripts are **intentionally not migrated** as they manage git repositories, not video assets:
617
684
 
618
- ### Workflow Scripts (Not Migrating to Gem)
685
+ ### `/video-projects/v-shared/*.sh`
619
686
 
620
- These are repository management scripts, not DAM commands:
687
+ - `status-all.sh` - Runs `git status` on all v-* brand repos
688
+ - `sync-all.sh` - Runs `git pull` on all v-* brand repos
689
+ - `clone-all.sh` - Clones missing v-* brand repos
621
690
 
622
- - ❌ `status-all.sh` - Git status for all v-* repos
623
- - `sync-all.sh` - Git pull for all repos
624
- - `clone-all.sh` - Clone all brand repos
691
+ **Why separate:**
692
+ 1. Different domain: Git repository management vs. video asset management
693
+ 2. Different tools: Shell + git commands vs. Ruby + AWS/file operations
694
+ 3. Different location: Belongs in video-projects workspace, not in distributed gem
695
+ 4. Shell scripts work perfectly for this use case
625
696
 
626
- **Rationale**: These are development workflow tools for managing the video-projects repository structure, not video asset operations. They belong in the video-projects folder, not the appydave-tools gem.
697
+ **If migration is desired:** Could add `dam repo-status/sync/clone` but would duplicate working shell functionality and mix concerns.
627
698
 
628
699
  ---
629
700
 
@@ -683,14 +754,15 @@ These are repository management scripts, not DAM commands:
683
754
  - [x] `dam s3-up` - Upload to S3
684
755
  - [x] `dam s3-down` - Download from S3 ⭐ Phase 2 complete
685
756
  - [x] `dam s3-status` - Check sync status ⭐ Phase 2 complete
686
- - [x] `dam s3-cleanup` - Delete S3 files ⭐ Phase 2 complete
757
+ - [x] `dam s3-cleanup-remote` / `s3-cleanup-local` - Delete S3/local files ⭐ Phase 2 complete
758
+ - [x] `dam manifest` - Generate project manifest ⭐ Phase 3 complete
759
+ - [x] `dam archive` - Archive to SSD (dry-run + force) ⭐ Phase 3 complete
760
+ - [x] `dam sync-ssd` - Sync from SSD (dry-run) ⭐ Phase 3 complete
687
761
 
688
762
  ### ⏳ Pending Implementation
689
763
 
690
- **Commands (Copied but need CLI arg support)**:
691
- - [ ] `dam manifest` - Generate project manifest
692
- - [ ] `dam archive` - Archive to SSD
693
- - [ ] `dam sync-ssd` - Sync from SSD
764
+ **Commands**:
765
+ - [x] All DAM commands COMPLETE
694
766
 
695
767
  **Testing**:
696
768
  - [ ] Manual integration tests (Phase 2)
data/docs/dam/usage.md CHANGED
@@ -561,17 +561,70 @@ dam s3-down
561
561
  dam s3-status
562
562
  ```
563
563
 
564
- ### Dry-Run Mode
564
+ ### Command Safety Features
565
565
 
566
- Preview actions without making changes:
566
+ #### Dry-Run Support
567
+
568
+ All filesystem-modifying commands support `--dry-run` to preview changes before execution:
569
+
570
+ | Command | Dry-Run Support | Force Flag Required | What It Previews |
571
+ |---------|----------------|---------------------|------------------|
572
+ | **s3-up** | ✅ Yes | No | Files to upload to S3 |
573
+ | **s3-down** | ✅ Yes | No | Files to download from S3 |
574
+ | **s3-cleanup-remote** | ✅ Yes | **Yes (`--force`)** | S3 files to delete |
575
+ | **s3-cleanup-local** | ✅ Yes | **Yes (`--force`)** | Local s3-staging files to delete |
576
+ | **archive** | ✅ Yes | Optional (`--force` = delete local) | Project to copy to SSD |
577
+ | **sync-ssd** | ✅ Yes | No | Light files to restore from SSD |
578
+
579
+ #### Read-Only Commands (No Dry-Run Needed)
580
+
581
+ These commands only read data and don't modify files:
582
+
583
+ | Command | Type | What It Does |
584
+ |---------|------|--------------|
585
+ | **list** | Read-only | List brands/projects |
586
+ | **manifest** | Generates JSON | Generate `projects.json` manifest |
587
+ | **s3-status** | Read-only | Check sync status |
588
+ | **help** | Read-only | Show help information |
589
+
590
+ #### Safety Workflow Examples
591
+
592
+ **Always preview destructive operations first:**
567
593
 
568
594
  ```bash
595
+ # Preview S3 upload
569
596
  dam s3-up appydave b65 --dry-run
570
- dam s3-down voz boy-baker --dry-run
571
- dam s3-cleanup-remote aitldr movie-posters --dry-run
572
- dam s3-cleanup-local appydave b65 --dry-run
597
+ # Review output, then execute
598
+ dam s3-up appydave b65
599
+
600
+ # Preview S3 cleanup (requires --force)
601
+ dam s3-cleanup-remote appydave b65 --force --dry-run
602
+ # Review output, then execute
603
+ dam s3-cleanup-remote appydave b65 --force
604
+
605
+ # Preview archive (with or without local deletion)
606
+ dam archive appydave b63 --dry-run # Copy only
607
+ dam archive appydave b63 --force --dry-run # Copy + delete local
608
+ # Review output, then execute
609
+ dam archive appydave b63 # Copy only
610
+ dam archive appydave b63 --force # Copy + delete local
611
+
612
+ # Preview SSD sync
613
+ dam sync-ssd appydave --dry-run
614
+ # Review output, then execute
615
+ dam sync-ssd appydave
573
616
  ```
574
617
 
618
+ #### Force Flag Behavior
619
+
620
+ Commands requiring `--force` provide extra protection for destructive operations:
621
+
622
+ - **s3-cleanup-remote**: Must use `--force` to delete S3 files (prevents accidental deletion)
623
+ - **s3-cleanup-local**: Must use `--force` to delete local staging files
624
+ - **archive**: Optional `--force` flag deletes local copy after successful SSD backup
625
+ - Without `--force`: Copies to SSD, keeps local copy intact
626
+ - With `--force`: Copies to SSD, then deletes local copy (frees disk space)
627
+
575
628
  ### Interactive Selection
576
629
 
577
630
  When multiple projects match short name:
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Appydave
4
4
  module Tools
5
- VERSION = '0.18.3'
5
+ VERSION = '0.18.5'
6
6
  end
7
7
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appydave-tools",
3
- "version": "0.18.3",
3
+ "version": "0.18.5",
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.18.3
4
+ version: 0.18.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
@@ -241,10 +241,10 @@ files:
241
241
  - docs/configuration/README.md
242
242
  - docs/configuration/channels.example.json
243
243
  - docs/configuration/settings.example.json
244
+ - docs/dam/dam-testing-plan.md
244
245
  - docs/dam/dam-vision.md
245
246
  - docs/dam/session-summary-2025-11-09.md
246
247
  - docs/dam/usage.md
247
- - docs/dam/vat-testing-plan.md
248
248
  - docs/dam/windows-testing-guide.md
249
249
  - docs/development/CODEX-recommendations.md
250
250
  - docs/development/README.md