s3_website 0.2.1 → 0.3.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
  SHA1:
3
- metadata.gz: 84a98616bd0e1e0030cfd8f1281cd81261bafe0e
4
- data.tar.gz: ae9d4a87ea83d249573f2ff9574df0fbe113f066
3
+ metadata.gz: 58f0b0262858ded1fa65316ca84b921529f02302
4
+ data.tar.gz: 882765a34ba7e488ef2f08e2838f3c9f1d9f93f3
5
5
  SHA512:
6
- metadata.gz: 44545f2642cf669c5a93aa2b6a46899250193a2b0d695419edff09386407be7b88502d0d5a024e8ae6d604671c427d641901fc558d340704436f8ef3af5cfc0a
7
- data.tar.gz: 1580312823261f06d92d94d4acfd786af01203dffdbe4b81d795d889727923470513d8112d3c5003d36055c6b39bf7d528d6e22649098354602a2ddbeb19d2c6
6
+ metadata.gz: a209de0e13692763cf9901e8a6f8bf235e8ca90a8dee600495d738ae2992ed27c286fd7138b4ba4fd375afd565b8bbd6bdbcfd97ab149a3fac76e77c56561361
7
+ data.tar.gz: 0eacf9898f13c40904bd089f5f933dc173a6e955f806be1cdcb15262bc471d1bd634502cf8bf6cebcae8652b34be48444c7bfbeb08d7130a9bfa5782b4ebdbbd
data/README.md CHANGED
@@ -12,10 +12,15 @@
12
12
  * Set HTTP redirects for your website
13
13
  * (for other features, see the documentation below)
14
14
 
15
+ `s3_website` automatically supports [Jekyll](http://jekyllrb.com) and
16
+ [Nanoc](http://nanoc.ws) by recognising their output directories (*_site* for
17
+ Jekyll and *public/output* for Nanoc). If your website resides in some other
18
+ directory, you can point the directory to `s3_website` with a parameter. See
19
+ `s3_website help push` for more info.
20
+
15
21
  ## Install
16
22
 
17
- <span style="color: yellow">This project is still on beta level. Expect backward
18
- incompatible changes.</span>
23
+ This project is still on beta level. Expect backward incompatible changes.
19
24
 
20
25
  gem install s3_website
21
26
 
@@ -26,9 +31,8 @@ Here's how you can get started:
26
31
  * Go to your website directory
27
32
  * Run `s3_website cfg create`. It generates a configuration file called `s3_website.yml`
28
33
  * Edit it with your details (you can use [ERB](http://ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB.html) in the file)
29
- * Run `s3_website cfg apply` This will configure
30
- your bucket to function as an S3 website. If the bucket does not exist,
31
- `s3_website cfg apply` will create it for you.
34
+ * Run `s3_website cfg apply`. This will configure your bucket to function as an
35
+ S3 website. If the bucket does not exist, the command will create it for you.
32
36
  * Run `s3_website push` to push your website to S3. Congratulations! You are live.
33
37
 
34
38
  `s3_website` attempts to be a command-line interface tool that is easy to
@@ -165,7 +169,7 @@ S3 bucket, just add the following line into the file `s3_website.yml`:
165
169
 
166
170
  cloudfront_distribution_id: your-dist-id
167
171
 
168
- Next time you run `s3_website`, it will invalidate the items on CloudFront and
172
+ Next time you run `s3_website push`, it will invalidate the items on CloudFront and
169
173
  thus force the CDN system to reload the changes from your website S3 bucket.
170
174
 
171
175
  #### Specifying custom settings for your CloudFront distribution
@@ -250,7 +254,7 @@ it programmatically by calling the same API as the executable `s3_website` does:
250
254
  ````ruby
251
255
  require 's3_website'
252
256
  is_headless = true
253
- S3Website::Tasks.push('/path/to/your/website/_site/', is_headless)
257
+ S3Website::Tasks.push('/website/root', '/path/to/your/website/_site/', is_headless)
254
258
  ````
255
259
 
256
260
  You can also use a basic `Hash` instead of a `s3_website.yml` file:
data/Rakefile CHANGED
@@ -16,3 +16,9 @@ task "cucumber:wip" do
16
16
  ENV['disable_parallel_processing'] = 'true'
17
17
  sh "bundle exec cucumber --tags @wip"
18
18
  end
19
+
20
+ desc 'Run fast tests'
21
+ task "cucumber:fast" do
22
+ ENV['disable_parallel_processing'] = 'true'
23
+ sh "bundle exec cucumber --tags ~@network-io --tags ~@starts-new-os-process"
24
+ end
data/bin/s3_website CHANGED
@@ -27,8 +27,8 @@ class Cli < Thor
27
27
  option(
28
28
  :site,
29
29
  :type => :string,
30
- :default => '_site',
31
- :desc => 'The directory where your website files are'
30
+ :default => 'infer automatically',
31
+ :desc => "The directory where your website files are. When not defined, s3_website will look for the site in #{S3Website::Paths.site_paths.join(' or ')}."
32
32
  )
33
33
  option(
34
34
  :headless,
@@ -42,7 +42,8 @@ class Cli < Thor
42
42
  also delete from S3 the files that you no longer have locally.
43
43
  LONGDESC
44
44
  def push
45
- S3Website::Tasks.push(options[:site], options[:headless])
45
+ site_path = S3Website::Paths.infer_site_path options[:site]
46
+ S3Website::Tasks.push(Dir.pwd, site_path, options[:headless])
46
47
  end
47
48
 
48
49
  desc 'cfg SUBCOMMAND ...ARGS', 'Operate on the config file'
data/changelog.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This project uses [Semantic Versioning](http://semver.org).
4
4
 
5
+ ## 0.3.0
6
+
7
+ * Add Nanoc support
8
+
5
9
  ## 0.2.1
6
10
 
7
11
  * Remove Gemfile.lock
@@ -23,7 +23,7 @@ Feature: Invalidate the Cloudfront distribution
23
23
  Then s3_website will push my blog to S3 and invalidate the Cloudfront distribution
24
24
  And the output should equal
25
25
  """
26
- Deploying _site/* to s3-website-test.net
26
+ Deploying features/support/test_site_dirs/cdn-powered.with-one-change.blog.fi/_site/* to s3-website-test.net
27
27
  Uploading 1 changed file(s)
28
28
  Upload index.html: Success!
29
29
  Done! Go visit: http://s3-website-test.net.s3-website-us-east-1.amazonaws.com/index.html
@@ -10,7 +10,7 @@ Feature: remove an S3 website page from S3
10
10
  Then s3_website will push my blog to S3
11
11
  And the output should equal
12
12
  """
13
- Deploying _site/* to s3-website-test.net
13
+ Deploying features/support/test_site_dirs/unpublish-a-post.com/_site/* to s3-website-test.net
14
14
  No new or changed files to upload
15
15
  Delete index.html: Success!
16
16
  Done! Go visit: http://s3-website-test.net.s3-website-us-east-1.amazonaws.com/index.html
@@ -4,13 +4,15 @@ Feature: Instructions for a new user
4
4
  I would like to get helpful feedback when running `s3_website`
5
5
  So that I can upload my S3 website to S3 without headache
6
6
 
7
+ @starts-new-os-process
7
8
  Scenario: Run s3_website in the wrong directory
8
9
  When I run `s3_website push`
9
10
  Then the output should contain:
10
11
  """
11
- I can't find any directory called _site. Are you in the right directory?
12
+ I can't find a website in any of the following directories: public/output, _site. Please specify the location of the website with the --site option.
12
13
  """
13
14
 
15
+ @starts-new-os-process
14
16
  Scenario: Create placeholder config file
15
17
  Given a directory named "_site"
16
18
  When I run `s3_website cfg create`
@@ -25,6 +27,7 @@ Feature: Instructions for a new user
25
27
  s3_bucket: your.blog.bucket.com
26
28
  """
27
29
 
30
+ @starts-new-os-process
28
31
  Scenario: Run s3_website push for the first time
29
32
  Given a directory named "_site"
30
33
  When I run `s3_website push`
@@ -39,6 +42,7 @@ Feature: Instructions for a new user
39
42
  s3_bucket: your.blog.bucket.com
40
43
  """
41
44
 
45
+ @starts-new-os-process
42
46
  Scenario: Run s3_website with an empty configuration file
43
47
  Given a directory named "_site"
44
48
  And an empty file named "s3_website.yml"
@@ -51,6 +55,7 @@ Feature: Instructions for a new user
51
55
  s3_bucket: your.blog.bucket.com
52
56
  """
53
57
 
58
+ @starts-new-os-process
54
59
  Scenario: Run s3_website with a malformed configuration file
55
60
  Given a directory named "_site"
56
61
  And a file named "s3_website.yml" with:
@@ -67,6 +72,7 @@ Feature: Instructions for a new user
67
72
  s3_bucket: your.blog.bucket.com
68
73
  """
69
74
 
75
+ @starts-new-os-process
70
76
  Scenario: Run s3_website with a configuration file that does not contain a bucket
71
77
  Given a directory named "_site"
72
78
  And a file named "s3_website.yml" with:
@@ -0,0 +1,13 @@
1
+ Feature: upload a Jekyll site
2
+
3
+ @new-files
4
+ Scenario: Push a Jekyll site to S3
5
+ When my S3 website is in "features/support/test_site_dirs/jekyllrb.com"
6
+ Then s3_website will push my blog to S3
7
+ And the output should contain
8
+ """
9
+ Deploying features/support/test_site_dirs/jekyllrb.com/_site/* to s3-website-test.net
10
+ Uploading 2 new file(s)
11
+ Upload css/styles.css: Success!
12
+ Upload index.html: Success!
13
+ """
@@ -0,0 +1,13 @@
1
+ Feature: upload a Nanoc site
2
+
3
+ @new-files
4
+ Scenario: Push a Nanoc site to S3
5
+ When my S3 website is in "features/support/test_site_dirs/nanoc.ws"
6
+ Then s3_website will push my blog to S3
7
+ And the output should contain
8
+ """
9
+ Deploying features/support/test_site_dirs/nanoc.ws/public/output/* to s3-website-test.net
10
+ Uploading 2 new file(s)
11
+ Upload css/styles.css: Success!
12
+ Upload index.html: Success!
13
+ """
@@ -10,16 +10,27 @@ Feature: upload S3 website to S3
10
10
  Then s3_website will push my blog to S3
11
11
  And the output should contain
12
12
  """
13
- Deploying _site/* to s3-website-test.net
13
+ Deploying features/support/test_site_dirs/my.blog.com/_site/* to s3-website-test.net
14
14
  Uploading 2 new file(s)
15
+ Upload css/styles.css: Success!
16
+ Upload index.html: Success!
15
17
  """
16
- And the output should contain
18
+
19
+ @new-files
20
+ @network-io
21
+ @starts-new-os-process
22
+ Scenario: The website resides in a non-standard directory
23
+ Given a directory named "this-is-a-non-standard-website-dir"
24
+ And a file named "s3_website.yml" with:
17
25
  """
18
- Upload css/styles.css: Success!
26
+ s3_id: id
27
+ s3_secret: secret
28
+ s3_bucket: website.net
19
29
  """
20
- And the output should contain
30
+ And I run `s3_website push --site this-is-a-non-standard-website-dir`
31
+ Then the output should contain:
21
32
  """
22
- Upload index.html: Success!
33
+ Deploying this-is-a-non-standard-website-dir/* to website.net
23
34
  """
24
35
 
25
36
  @new-files-for-sydney
@@ -37,7 +48,7 @@ Feature: upload S3 website to S3
37
48
  Then s3_website will push my blog to S3
38
49
  And the output should contain
39
50
  """
40
- Deploying _site/* to s3-website-test.net
51
+ Deploying features/support/test_site_dirs/new-and-changed-files.com/_site/* to s3-website-test.net
41
52
  Uploading 1 new and 1 changed file(s)
42
53
  """
43
54
  And the output should contain
@@ -60,7 +71,7 @@ Feature: upload S3 website to S3
60
71
  Then s3_website will push my blog to S3
61
72
  And the output should equal
62
73
  """
63
- Deploying _site/* to s3-website-test.net
74
+ Deploying features/support/test_site_dirs/only-changed-files.com/_site/* to s3-website-test.net
64
75
  Uploading 1 changed file(s)
65
76
  Upload index.html: Success!
66
77
  Done! Go visit: http://s3-website-test.net.s3-website-us-east-1.amazonaws.com/index.html
@@ -73,7 +84,7 @@ Feature: upload S3 website to S3
73
84
  Then s3_website will push my blog to S3
74
85
  And the output should equal
75
86
  """
76
- Deploying _site/* to s3-website-test.net
87
+ Deploying features/support/test_site_dirs/no-new-or-changed-files.com/_site/* to s3-website-test.net
77
88
  No new or changed files to upload
78
89
  Done! Go visit: http://s3-website-test.net.s3-website-us-east-1.amazonaws.com/index.html
79
90
 
@@ -4,10 +4,8 @@ Feature: configure redirects
4
4
  Scenario: The user wants to configure new redirects for HTTP resources
5
5
  When my S3 website is in "features/support/test_site_dirs/create-redirects"
6
6
  Then s3_website will push my blog to S3
7
- And the output should equal
7
+ And the output should contain
8
8
  """
9
- Deploying _site/* to s3-website-test.net
10
- No new or changed files to upload
11
9
  Creating new redirects ...
12
10
  Redirect welcome.php to /welcome: Success!
13
11
  Redirect pets/dogs to /cats-and-dogs/wuf: Success!
@@ -41,8 +41,13 @@ end
41
41
  def push_files
42
42
  @console_output = capture_stdout {
43
43
  in_headless_mode = true
44
+ site_path = S3Website::Paths.infer_site_path(
45
+ 'infer automatically',
46
+ @blog_dir
47
+ )
44
48
  result = S3Website::Tasks.push(
45
- "#{@blog_dir}/_site",
49
+ @blog_dir,
50
+ site_path,
46
51
  in_headless_mode
47
52
  )
48
53
  @amount_of_new_files = result[:new_files_count]
@@ -0,0 +1,5 @@
1
+ <html>
2
+ <head>
3
+ <title>hello!</title>
4
+ </head>
5
+ </html>
@@ -0,0 +1,3 @@
1
+ s3_id: key
2
+ s3_secret: pass
3
+ s3_bucket: s3-website-test.net
@@ -0,0 +1,5 @@
1
+ <html>
2
+ <head>
3
+ <title>hello!</title>
4
+ </head>
5
+ </html>
@@ -0,0 +1,3 @@
1
+ s3_id: key
2
+ s3_secret: pass
3
+ s3_bucket: s3-website-test.net
data/lib/s3_website.rb CHANGED
@@ -11,7 +11,21 @@ module S3Website
11
11
  DEFAULT_GZIP_EXTENSIONS = %w(.html .css .js .svg .txt)
12
12
  end
13
13
 
14
- %w{errors upload uploader tasks config_loader retry keyboard diff_helper endpoint parallelism}.each do |file|
14
+ %w{
15
+ errors
16
+ upload
17
+ uploader
18
+ tasks
19
+ config_loader
20
+ retry
21
+ keyboard
22
+ diff_helper
23
+ endpoint
24
+ parallelism
25
+ jekyll
26
+ nanoc
27
+ paths
28
+ }.each do |file|
15
29
  require File.dirname(__FILE__) + "/s3_website/#{file}"
16
30
  end
17
31
 
@@ -8,7 +8,7 @@ s3_bucket: your.blog.bucket.com
8
8
  EOF
9
9
 
10
10
  def self.check_project(site_dir)
11
- raise NotAJekyllProjectError unless File.directory?(site_dir)
11
+ raise NoWebsiteDirectoryFound unless File.directory?(site_dir)
12
12
  end
13
13
 
14
14
  # Raise NoConfigurationFileError if the configuration file does not exists
@@ -20,16 +20,12 @@ s3_bucket: your.blog.bucket.com
20
20
  end
21
21
  end
22
22
 
23
- def self.get_configuration_file(site_dir)
24
- "#{site_dir}/../#{CONFIGURATION_FILE}"
25
- end
26
-
27
23
  private
28
24
 
29
25
  # Load configuration from s3_website.yml
30
26
  # Raise MalformedConfigurationFileError if the configuration file does not contain the keys we expect
31
- def self.load_configuration(site_dir)
32
- config = load_yaml_file_and_validate site_dir
27
+ def self.load_configuration(config_file_dir)
28
+ config = load_yaml_file_and_validate config_file_dir
33
29
  return config
34
30
  end
35
31
 
@@ -39,9 +35,11 @@ s3_bucket: your.blog.bucket.com
39
35
  }
40
36
  end
41
37
 
42
- def self.load_yaml_file_and_validate(site_dir)
38
+ def self.load_yaml_file_and_validate(config_file_dir)
43
39
  begin
44
- config = YAML.load(Erubis::Eruby.new(File.read(get_configuration_file(site_dir))).result)
40
+ config = YAML.load(Erubis::Eruby.new(
41
+ File.read(config_file_dir + '/' + CONFIGURATION_FILE)
42
+ ).result)
45
43
  rescue Exception
46
44
  raise MalformedConfigurationFileError
47
45
  end
@@ -2,8 +2,14 @@ module S3Website
2
2
  class S3WebsiteError < StandardError
3
3
  end
4
4
 
5
- class NotAJekyllProjectError < S3WebsiteError
6
- def initialize(message = "I can't find any directory called _site. Are you in the right directory?")
5
+ class NoWebsiteDirectoryFound < S3WebsiteError
6
+ def initialize(message = "I can't find any website. Are you in the right directory?")
7
+ super(message)
8
+ end
9
+ end
10
+
11
+ class NoPredefinedWebsiteDirectoryFound < NoWebsiteDirectoryFound
12
+ def initialize(message = "I can't find a website in any of the following directories: #{Paths.site_paths.join(', ')}. Please specify the location of the website with the --site option.")
7
13
  super(message)
8
14
  end
9
15
  end
@@ -0,0 +1,5 @@
1
+ module S3Website
2
+ module Jekyll
3
+ SITE_PATH = '_site'
4
+ end
5
+ end
@@ -7,7 +7,7 @@ module S3Website
7
7
  delete = false
8
8
  keep = false
9
9
  until delete || delete_all || keep || keep_all
10
- puts "#{f} is on S3 but not in your _site directory anymore. Do you want to [d]elete, [D]elete all, [k]eep, [K]eep all?"
10
+ puts "#{f} is on S3 but not in your website directory anymore. Do you want to [d]elete, [D]elete all, [k]eep, [K]eep all?"
11
11
  case standard_input.gets.chomp
12
12
  when 'd' then delete = true
13
13
  when 'D' then delete_all = true
@@ -0,0 +1,5 @@
1
+ module S3Website
2
+ module Nanoc
3
+ SITE_PATH = 'public/output'
4
+ end
5
+ end
@@ -0,0 +1,32 @@
1
+ module S3Website
2
+ class Paths
3
+ def self.site_paths
4
+ [Nanoc::SITE_PATH, Jekyll::SITE_PATH]
5
+ end
6
+
7
+ def self.infer_site_path(candidate_path, pwd = Dir.pwd)
8
+ if candidate_path == 'infer automatically'
9
+ site_path = site_paths.
10
+ map do |site_path|
11
+ pwd + '/' + site_path
12
+ end.
13
+ find do |site_path|
14
+ File.exists? site_path
15
+ end
16
+ if site_path
17
+ site_path
18
+ else
19
+ raise NoPredefinedWebsiteDirectoryFound
20
+ end
21
+ else
22
+ raise NoWebsiteDirectoryFound.new(
23
+ "Can't find a website in " + candidate_path
24
+ ) unless File.exists? candidate_path
25
+ candidate_path
26
+ end
27
+ rescue NoWebsiteDirectoryFound => e
28
+ puts e.message
29
+ exit 1
30
+ end
31
+ end
32
+ end
@@ -1,9 +1,9 @@
1
1
  module S3Website
2
2
  class Tasks
3
- def self.push(site_dir, in_headless_mode = false)
3
+ def self.push(config_file_dir, site_dir, in_headless_mode = false)
4
4
  ConfigLoader.check_project site_dir
5
- ConfigLoader.check_s3_configuration site_dir + '/../'
6
- config = S3Website::ConfigLoader.load_configuration site_dir
5
+ ConfigLoader.check_s3_configuration config_file_dir
6
+ config = S3Website::ConfigLoader.load_configuration config_file_dir
7
7
  new_files_count, changed_files_count, deleted_files_count, changed_files, changed_redirects =
8
8
  Uploader.run(site_dir, config, in_headless_mode)
9
9
  invalidated_items_count =
@@ -1,7 +1,7 @@
1
1
  module S3Website
2
2
  class Uploader
3
3
  def self.run(site_dir, config, in_headless_mode = false)
4
- puts "Deploying _site/* to #{config['s3_bucket']}"
4
+ puts "Deploying #{site_dir.sub(Dir.pwd + '/', '')}/* to #{config['s3_bucket']}"
5
5
 
6
6
  s3_config = { :s3_endpoint => Endpoint.new(config['s3_endpoint']).hostname }
7
7
  s3_id, s3_secret = config['s3_id'], config['s3_secret']
data/s3_website.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "s3_website"
6
- s.version = "0.2.1"
6
+ s.version = "0.3.0"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Lauri Lehmijoki"]
9
9
  s.email = ["lauri.lehmijoki@iki.fi"]
@@ -2,19 +2,19 @@ require 'spec_helper'
2
2
 
3
3
  describe S3Website::ConfigLoader do
4
4
  it 'supports eRuby syntax in s3_website.yml' do
5
- config = S3Website::ConfigLoader.load_configuration('spec/sample_files/hyde_site/_site')
5
+ config = S3Website::ConfigLoader.load_configuration('spec/sample_files/hyde_site/')
6
6
  config['s3_id'].should eq('hello')
7
7
  config['s3_secret'].should eq('world')
8
8
  config['s3_bucket'].should eq('galaxy')
9
9
  end
10
10
 
11
11
  it 'does not define default endpoint' do
12
- config = S3Website::ConfigLoader.load_configuration('spec/sample_files/hyde_site/_site')
12
+ config = S3Website::ConfigLoader.load_configuration('spec/sample_files/hyde_site/')
13
13
  config['s3_endpoint'].should be_nil
14
14
  end
15
15
 
16
16
  it 'reads the S3 endpoint setting from s3_website.yml' do
17
- config = S3Website::ConfigLoader.load_configuration('spec/sample_files/tokyo_site/_site')
17
+ config = S3Website::ConfigLoader.load_configuration('spec/sample_files/tokyo_site')
18
18
  config['s3_endpoint'].should eq('ap-northeast-1')
19
19
  end
20
20
  end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe S3Website::Paths do
4
+ it 'recognises Jekyll and Nanoc site paths' do
5
+ S3Website::Paths.site_paths.should eq(['public/output', '_site'])
6
+ end
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: s3_website
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lauri Lehmijoki
@@ -237,6 +237,9 @@ files:
237
237
  - features/cloudfront.feature
238
238
  - features/delete.feature
239
239
  - features/instructions-for-new-user.feature
240
+ - features/jekyll-support.feature
241
+ - features/nanoc-support.feature
242
+ - features/push.feature
240
243
  - features/redirects.feature
241
244
  - features/step_definitions/steps.rb
242
245
  - features/support/env.rb
@@ -252,12 +255,18 @@ files:
252
255
  - features/support/test_site_dirs/index-and-assets.blog.fi/_site/css/styles.css
253
256
  - features/support/test_site_dirs/index-and-assets.blog.fi/_site/index.html
254
257
  - features/support/test_site_dirs/index-and-assets.blog.fi/s3_website.yml
258
+ - features/support/test_site_dirs/jekyllrb.com/_site/css/styles.css
259
+ - features/support/test_site_dirs/jekyllrb.com/_site/index.html
260
+ - features/support/test_site_dirs/jekyllrb.com/s3_website.yml
255
261
  - features/support/test_site_dirs/my.blog.com/_site/css/styles.css
256
262
  - features/support/test_site_dirs/my.blog.com/_site/index.html
257
263
  - features/support/test_site_dirs/my.blog.com/s3_website.yml
258
264
  - features/support/test_site_dirs/my.sydney.blog.au/_site/css/styles.css
259
265
  - features/support/test_site_dirs/my.sydney.blog.au/_site/index.html
260
266
  - features/support/test_site_dirs/my.sydney.blog.au/s3_website.yml
267
+ - features/support/test_site_dirs/nanoc.ws/public/output/css/styles.css
268
+ - features/support/test_site_dirs/nanoc.ws/public/output/index.html
269
+ - features/support/test_site_dirs/nanoc.ws/s3_website.yml
261
270
  - features/support/test_site_dirs/new-and-changed-files.com/_site/css/styles.css
262
271
  - features/support/test_site_dirs/new-and-changed-files.com/_site/index.html
263
272
  - features/support/test_site_dirs/new-and-changed-files.com/s3_website.yml
@@ -282,7 +291,6 @@ files:
282
291
  - features/support/test_site_dirs/unpublish-a-post.com/_site/css/styles.css
283
292
  - features/support/test_site_dirs/unpublish-a-post.com/s3_website.yml
284
293
  - features/support/vcr.rb
285
- - features/sync.feature
286
294
  - features/website-performance.feature
287
295
  - lib/cloudfront/invalidator.rb
288
296
  - lib/s3_website.rb
@@ -290,8 +298,11 @@ files:
290
298
  - lib/s3_website/diff_helper.rb
291
299
  - lib/s3_website/endpoint.rb
292
300
  - lib/s3_website/errors.rb
301
+ - lib/s3_website/jekyll.rb
293
302
  - lib/s3_website/keyboard.rb
303
+ - lib/s3_website/nanoc.rb
294
304
  - lib/s3_website/parallelism.rb
305
+ - lib/s3_website/paths.rb
295
306
  - lib/s3_website/retry.rb
296
307
  - lib/s3_website/tasks.rb
297
308
  - lib/s3_website/upload.rb
@@ -301,6 +312,7 @@ files:
301
312
  - spec/lib/endpoint_spec.rb
302
313
  - spec/lib/keyboard_spec.rb
303
314
  - spec/lib/parallelism_spec.rb
315
+ - spec/lib/paths_spec.rb
304
316
  - spec/lib/retry_spec.rb
305
317
  - spec/lib/upload_spec.rb
306
318
  - spec/lib/uploader_spec.rb
@@ -350,6 +362,9 @@ test_files:
350
362
  - features/cloudfront.feature
351
363
  - features/delete.feature
352
364
  - features/instructions-for-new-user.feature
365
+ - features/jekyll-support.feature
366
+ - features/nanoc-support.feature
367
+ - features/push.feature
353
368
  - features/redirects.feature
354
369
  - features/step_definitions/steps.rb
355
370
  - features/support/env.rb
@@ -365,12 +380,18 @@ test_files:
365
380
  - features/support/test_site_dirs/index-and-assets.blog.fi/_site/css/styles.css
366
381
  - features/support/test_site_dirs/index-and-assets.blog.fi/_site/index.html
367
382
  - features/support/test_site_dirs/index-and-assets.blog.fi/s3_website.yml
383
+ - features/support/test_site_dirs/jekyllrb.com/_site/css/styles.css
384
+ - features/support/test_site_dirs/jekyllrb.com/_site/index.html
385
+ - features/support/test_site_dirs/jekyllrb.com/s3_website.yml
368
386
  - features/support/test_site_dirs/my.blog.com/_site/css/styles.css
369
387
  - features/support/test_site_dirs/my.blog.com/_site/index.html
370
388
  - features/support/test_site_dirs/my.blog.com/s3_website.yml
371
389
  - features/support/test_site_dirs/my.sydney.blog.au/_site/css/styles.css
372
390
  - features/support/test_site_dirs/my.sydney.blog.au/_site/index.html
373
391
  - features/support/test_site_dirs/my.sydney.blog.au/s3_website.yml
392
+ - features/support/test_site_dirs/nanoc.ws/public/output/css/styles.css
393
+ - features/support/test_site_dirs/nanoc.ws/public/output/index.html
394
+ - features/support/test_site_dirs/nanoc.ws/s3_website.yml
374
395
  - features/support/test_site_dirs/new-and-changed-files.com/_site/css/styles.css
375
396
  - features/support/test_site_dirs/new-and-changed-files.com/_site/index.html
376
397
  - features/support/test_site_dirs/new-and-changed-files.com/s3_website.yml
@@ -395,12 +416,12 @@ test_files:
395
416
  - features/support/test_site_dirs/unpublish-a-post.com/_site/css/styles.css
396
417
  - features/support/test_site_dirs/unpublish-a-post.com/s3_website.yml
397
418
  - features/support/vcr.rb
398
- - features/sync.feature
399
419
  - features/website-performance.feature
400
420
  - spec/lib/config_loader_spec.rb
401
421
  - spec/lib/endpoint_spec.rb
402
422
  - spec/lib/keyboard_spec.rb
403
423
  - spec/lib/parallelism_spec.rb
424
+ - spec/lib/paths_spec.rb
404
425
  - spec/lib/retry_spec.rb
405
426
  - spec/lib/upload_spec.rb
406
427
  - spec/lib/uploader_spec.rb