datapimp 1.0.12 → 1.0.13
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/Rakefile +3 -4
- data/lib/datapimp/cli/create.rb +37 -3
- data/lib/datapimp/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f92a9f500550b9bf611651ec9269f1f1022b50aa
|
4
|
+
data.tar.gz: 8513b18bb3c76b1ea20e3eb91d532f8f37976994
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c59ce1165293766f89ed019f6862e39cfc8097c39efe7e152918b512a88605197b8aaa3dcee138655bb1ba42a6f7610a13b45692f6f2ee56886bb83fba59d0ed
|
7
|
+
data.tar.gz: 761f03f731d979fdae3760884eb5954c8f4b0de1179a71d85bb3577b04abbde1693ee076c6aeda3de1159a68046a73504e816619b4994ee2c20b7a74acd66cf7
|
data/Rakefile
CHANGED
@@ -2,9 +2,6 @@ Dir[File.join(Dir.pwd, 'tasks', '**', '*.rb')].each { |f| require f }
|
|
2
2
|
Dir[File.join(Dir.pwd, 'tasks', '*.rake')].each { |f| load f }
|
3
3
|
|
4
4
|
require "bundler/gem_tasks"
|
5
|
-
require 'rspec/core/rake_task'
|
6
|
-
|
7
|
-
RSpec::Core::RakeTask.new(:spec)
|
8
5
|
|
9
6
|
Distribution.configure do |config|
|
10
7
|
config.package_name = 'datapimp'
|
@@ -18,4 +15,6 @@ Distribution.configure do |config|
|
|
18
15
|
]
|
19
16
|
end
|
20
17
|
|
21
|
-
task :default
|
18
|
+
task :default do
|
19
|
+
puts "Sup?"
|
20
|
+
end
|
data/lib/datapimp/cli/create.rb
CHANGED
@@ -5,8 +5,12 @@ command 'create cache invalidations' do |c|
|
|
5
5
|
Datapimp::Cli.accepts_keys_for(c, :amazon)
|
6
6
|
|
7
7
|
c.option '--all-html', 'Invalidate all HTML paths in the bucket'
|
8
|
+
c.option '--verbose', 'Print extra information such as exactly what paths get invalidated'
|
8
9
|
c.option '--previous-deploy', 'Invalidate all paths from the previous deploy'
|
9
|
-
c.option '--paths PATHS', Array, '
|
10
|
+
c.option '--paths PATHS', Array, 'List the specific paths you would like to invalidate'
|
11
|
+
c.option '--local-path FOLDER', String, 'Determine which paths to invalidate by looking at the files in this folder'
|
12
|
+
c.option '--ignore-paths PATTERN', String, 'Ignore any paths matching the supplied regex'
|
13
|
+
c.option '--match-paths PATTERN', String, 'Only invalidate paths matching the supplied regex'
|
10
14
|
|
11
15
|
c.action do |args, options|
|
12
16
|
options.defaults(:paths => [])
|
@@ -15,7 +19,16 @@ command 'create cache invalidations' do |c|
|
|
15
19
|
|
16
20
|
paths = Array(options.paths)
|
17
21
|
|
18
|
-
if options.
|
22
|
+
if options.local_path
|
23
|
+
local = Pathname(options.local_path)
|
24
|
+
|
25
|
+
paths += Dir[local.join('**/*')].map do |file|
|
26
|
+
file = Pathname(file)
|
27
|
+
"/#{file.relative_path_from(local)}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
if options.local_path.to_s.length == 0 && options.all_html
|
19
32
|
html_files = bucket.s3.files.select {|file| file.key.match(/\.html/) }
|
20
33
|
|
21
34
|
paths += html_files.map {|file| file.public_url }.map do |url|
|
@@ -24,19 +37,39 @@ command 'create cache invalidations' do |c|
|
|
24
37
|
index = "/" if index == ""
|
25
38
|
[path, index]
|
26
39
|
end
|
40
|
+
end
|
27
41
|
|
42
|
+
if options.local_path.to_s.length > 0 && options.all_html
|
43
|
+
paths.select! {|path| path.match(/\.html$/) }
|
44
|
+
paths.map! {|path| [path, path.gsub('/index.html','')] }
|
28
45
|
paths.flatten!
|
46
|
+
paths << "/"
|
29
47
|
end
|
30
48
|
|
49
|
+
paths.flatten!
|
50
|
+
|
51
|
+
# TODO
|
52
|
+
# Need to pull out paths that were previous deployed.
|
53
|
+
# We can rely on the s3 bucket deploy manifest for this.
|
31
54
|
if options.previous_deploy
|
32
55
|
items = bucket.deploy_manifest["uploaded"]
|
33
56
|
items
|
34
57
|
end
|
35
58
|
|
59
|
+
if options.match_paths
|
60
|
+
paths.select! {|path| path.to_s.match(options.ignore_paths) }
|
61
|
+
end
|
62
|
+
|
63
|
+
if options.ignore_paths
|
64
|
+
paths.reject! {|path| path.to_s.match(options.ignore_paths) }
|
65
|
+
end
|
66
|
+
|
67
|
+
paths.reject! {|path| path.length == 0}
|
68
|
+
|
36
69
|
if paths.length > 0
|
37
70
|
log "Posting invalidations for #{ paths.length } paths"
|
38
71
|
Datapimp::Sync.amazon.cdn.post_invalidation(bucket.cloudfront.id, paths)
|
39
|
-
log "
|
72
|
+
log "\nInvalidated paths: #{ paths.inspect }" if options.verbose
|
40
73
|
end
|
41
74
|
end
|
42
75
|
end
|
@@ -92,5 +125,6 @@ command 'create cloudfront distribution' do |c|
|
|
92
125
|
distribution.cname = Array(options.domains)
|
93
126
|
distribution.save
|
94
127
|
end
|
128
|
+
|
95
129
|
end
|
96
130
|
end
|
data/lib/datapimp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datapimp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Soeder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -444,7 +444,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
444
444
|
version: '0'
|
445
445
|
requirements: []
|
446
446
|
rubyforge_project:
|
447
|
-
rubygems_version: 2.
|
447
|
+
rubygems_version: 2.2.2
|
448
448
|
signing_key:
|
449
449
|
specification_version: 4
|
450
450
|
summary: A collection of API development patterns that I have accumulated in my career
|