appydave-tools 0.76.8 → 0.76.9
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 +7 -0
- data/bin/dam +8 -1
- data/docs/planning/library-boundary-cleanup/IMPLEMENTATION_PLAN.md +5 -3
- data/lib/appydave/tools/dam/s3_arg_parser.rb +6 -10
- data/lib/appydave/tools/version.rb +1 -1
- data/package.json +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2680beb9f23fb4e1c959404fe28030b130a974076dce5cacef2f465b423e030d
|
|
4
|
+
data.tar.gz: a06b45b3b820ac61388586e97dc03dc45dc83850bcd574fdd04194d0f772ddf5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 89c6eca337d36e59414d0d548952a6d5715e85569f697b2a9f602acca7475c5597126c655d1ff8fb1de9cf6028cc71c7877a8efb7ba6ed74b813949f5fa045c1
|
|
7
|
+
data.tar.gz: bf3b5f157a2947dcf21c7f82e07b35995009f7291ae453de02d29b15b49b3e5051a562d89a52427669248f6e6a4c359f950a3739b173e465e5661cb48412b6c7
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [0.76.8](https://github.com/appydave/appydave-tools/compare/v0.76.7...v0.76.8) (2026-03-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* replace exit 1 with typed exceptions in S3ScanCommand and S3ArgParser; add UsageError to errors.rb ([87bb43a](https://github.com/appydave/appydave-tools/commit/87bb43a9a9e67734061685670d32239aeef9a306))
|
|
7
|
+
|
|
1
8
|
## [0.76.7](https://github.com/appydave/appydave-tools/compare/v0.76.6...v0.76.7) (2026-03-19)
|
|
2
9
|
|
|
3
10
|
|
data/bin/dam
CHANGED
|
@@ -155,6 +155,7 @@ class VatCLI
|
|
|
155
155
|
# S3 Upload
|
|
156
156
|
def s3_up_command(args)
|
|
157
157
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 's3-up')
|
|
158
|
+
ENV['BRAND_PATH'] = options[:brand_path]
|
|
158
159
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
159
160
|
s3_ops.upload(dry_run: options[:dry_run])
|
|
160
161
|
rescue StandardError => e
|
|
@@ -165,6 +166,7 @@ class VatCLI
|
|
|
165
166
|
# S3 Download
|
|
166
167
|
def s3_down_command(args)
|
|
167
168
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 's3-down')
|
|
169
|
+
ENV['BRAND_PATH'] = options[:brand_path]
|
|
168
170
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
169
171
|
s3_ops.download(dry_run: options[:dry_run])
|
|
170
172
|
rescue StandardError => e
|
|
@@ -175,6 +177,7 @@ class VatCLI
|
|
|
175
177
|
# S3 Status
|
|
176
178
|
def s3_status_command(args)
|
|
177
179
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 's3-status')
|
|
180
|
+
ENV['BRAND_PATH'] = options[:brand_path]
|
|
178
181
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
179
182
|
s3_ops.status
|
|
180
183
|
rescue StandardError => e
|
|
@@ -185,6 +188,7 @@ class VatCLI
|
|
|
185
188
|
# S3 Cleanup Remote
|
|
186
189
|
def s3_cleanup_remote_command(args)
|
|
187
190
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 's3-cleanup-remote')
|
|
191
|
+
ENV['BRAND_PATH'] = options[:brand_path]
|
|
188
192
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
189
193
|
s3_ops.cleanup(force: options[:force], dry_run: options[:dry_run])
|
|
190
194
|
rescue StandardError => e
|
|
@@ -195,6 +199,7 @@ class VatCLI
|
|
|
195
199
|
# S3 Cleanup Local
|
|
196
200
|
def s3_cleanup_local_command(args)
|
|
197
201
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 's3-cleanup-local')
|
|
202
|
+
ENV['BRAND_PATH'] = options[:brand_path]
|
|
198
203
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
199
204
|
s3_ops.cleanup_local(force: options[:force], dry_run: options[:dry_run])
|
|
200
205
|
rescue StandardError => e
|
|
@@ -205,7 +210,7 @@ class VatCLI
|
|
|
205
210
|
# Share file via pre-signed URL
|
|
206
211
|
def s3_share_command(args)
|
|
207
212
|
options = Appydave::Tools::Dam::S3ArgParser.parse_share(args)
|
|
208
|
-
|
|
213
|
+
ENV['BRAND_PATH'] = options[:brand_path]
|
|
209
214
|
share_ops = Appydave::Tools::Dam::ShareOperations.new(options[:brand], options[:project])
|
|
210
215
|
share_ops.generate_links(files: options[:file], expires: options[:expires], download: options[:download])
|
|
211
216
|
rescue StandardError => e
|
|
@@ -216,6 +221,7 @@ class VatCLI
|
|
|
216
221
|
# Discover files in S3 for a project
|
|
217
222
|
def s3_discover_command(args)
|
|
218
223
|
options = Appydave::Tools::Dam::S3ArgParser.parse_discover(args)
|
|
224
|
+
ENV['BRAND_PATH'] = options[:brand_path]
|
|
219
225
|
files = fetch_s3_files(options[:brand_key], options[:project_id])
|
|
220
226
|
|
|
221
227
|
return if handle_empty_files?(files, options[:brand_key], options[:project_id])
|
|
@@ -229,6 +235,7 @@ class VatCLI
|
|
|
229
235
|
# Archive project to SSD
|
|
230
236
|
def archive_command(args)
|
|
231
237
|
options = Appydave::Tools::Dam::S3ArgParser.parse_s3(args, 'archive')
|
|
238
|
+
ENV['BRAND_PATH'] = options[:brand_path]
|
|
232
239
|
s3_ops = Appydave::Tools::Dam::S3Operations.new(options[:brand], options[:project])
|
|
233
240
|
s3_ops.archive(force: options[:force], dry_run: options[:dry_run])
|
|
234
241
|
rescue StandardError => e
|
|
@@ -5,15 +5,17 @@
|
|
|
5
5
|
**Target**: 4 items complete; 847+ examples passing; rubocop 0 offenses; no regressions
|
|
6
6
|
|
|
7
7
|
## Summary
|
|
8
|
-
- Total: 4 | Complete:
|
|
8
|
+
- Total: 4 | Complete: 1 | In Progress: 1 | Pending: 2 | Failed: 0
|
|
9
9
|
|
|
10
10
|
## Pending
|
|
11
|
-
- [ ] B035 — extract-env-side-effect — Remove `ENV['BRAND_PATH']` side-effect from S3ArgParser; return `brand_path:` in result hash; update VatCLI callers (DEPENDS ON B034)
|
|
12
11
|
- [ ] B036 — tests-s3-scan-command — Rebuild S3ScanCommand spec from D-grade to B; 8–10 examples covering happy path, manifest missing, empty results, orphaned projects (DEPENDS ON B034)
|
|
13
12
|
- [ ] B037 — tests-local-sync-status — Add :partial case, local_file_count assertion, Zone.Identifier exclusion, unknown format guard
|
|
14
13
|
|
|
15
14
|
## In Progress
|
|
16
|
-
- [~]
|
|
15
|
+
- [~] B035 — extract-env-side-effect — Remove `ENV['BRAND_PATH']` side-effect from S3ArgParser; return `brand_path:` in result hash; update VatCLI callers
|
|
16
|
+
|
|
17
|
+
## Complete
|
|
18
|
+
- [x] B034 — extract-exit-calls — UsageError added to errors.rb; exit 1 replaced in s3_scan_command.rb (1) and s3_arg_parser.rb (4); show_share_usage_and_exit renamed. 847 examples, 0 failures. v0.76.8. Commit: 87bb43a.
|
|
17
19
|
|
|
18
20
|
## Complete
|
|
19
21
|
|
|
@@ -32,14 +32,12 @@ module Appydave
|
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
brand_key = brand_arg # Use the shortcut/key (e.g., 'appydave')
|
|
35
|
-
brand = Appydave::Tools::Dam::Config.expand_brand(brand_arg) # Expand for path resolution
|
|
36
35
|
project_id = Appydave::Tools::Dam::ProjectResolver.resolve(brand_arg, project_arg)
|
|
37
36
|
end
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
ENV['BRAND_PATH'] = Appydave::Tools::Dam::Config.brand_path(brand)
|
|
38
|
+
brand_path = Appydave::Tools::Dam::Config.brand_path(brand_key)
|
|
41
39
|
|
|
42
|
-
{ brand: brand_key, project: project_id, dry_run: dry_run, force: force }
|
|
40
|
+
{ brand: brand_key, project: project_id, dry_run: dry_run, force: force, brand_path: brand_path }
|
|
43
41
|
end
|
|
44
42
|
|
|
45
43
|
def parse_share(args)
|
|
@@ -67,10 +65,9 @@ module Appydave
|
|
|
67
65
|
brand = Appydave::Tools::Dam::Config.expand_brand(brand_arg)
|
|
68
66
|
project_id = Appydave::Tools::Dam::ProjectResolver.resolve(brand_arg, project_arg)
|
|
69
67
|
|
|
70
|
-
|
|
71
|
-
ENV['BRAND_PATH'] = Appydave::Tools::Dam::Config.brand_path(brand)
|
|
68
|
+
brand_path = Appydave::Tools::Dam::Config.brand_path(brand)
|
|
72
69
|
|
|
73
|
-
{ brand: brand_key, project: project_id, file: file_arg, expires: expires, download: download }
|
|
70
|
+
{ brand: brand_key, project: project_id, file: file_arg, expires: expires, download: download, brand_path: brand_path }
|
|
74
71
|
end
|
|
75
72
|
|
|
76
73
|
def parse_discover(args)
|
|
@@ -89,10 +86,9 @@ module Appydave
|
|
|
89
86
|
brand = Appydave::Tools::Dam::Config.expand_brand(brand_arg)
|
|
90
87
|
project_id = Appydave::Tools::Dam::ProjectResolver.resolve(brand_arg, project_arg)
|
|
91
88
|
|
|
92
|
-
|
|
93
|
-
ENV['BRAND_PATH'] = Appydave::Tools::Dam::Config.brand_path(brand)
|
|
89
|
+
brand_path = Appydave::Tools::Dam::Config.brand_path(brand)
|
|
94
90
|
|
|
95
|
-
{ brand_key: brand_key, project_id: project_id, shareable: shareable }
|
|
91
|
+
{ brand_key: brand_key, project_id: project_id, shareable: shareable, brand_path: brand_path }
|
|
96
92
|
end
|
|
97
93
|
|
|
98
94
|
def valid_brand?(brand_key)
|
data/package.json
CHANGED