ale 0.0.1
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.
- data/.gitignore +3 -0
- data/Gemfile +2 -0
- data/ale.gemspec +23 -0
- data/bin/ale +6 -0
- data/lib/ale.rb +19 -0
- data/lib/ale/cli.rb +49 -0
- data/lib/ale/config.rb +16 -0
- data/lib/ale/dsl.rb +33 -0
- data/lib/ale/site.rb +35 -0
- data/lib/ale/version.rb +3 -0
- metadata +77 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/ale.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
$:.push File.expand_path('../lib', __FILE__)
|
2
|
+
require 'ale/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = 'ale'
|
6
|
+
s.platform = Gem::Platform::RUBY
|
7
|
+
s.version = Ale::VERSION
|
8
|
+
|
9
|
+
s.summary = 'Uploads websites to S3.'
|
10
|
+
s.description = 'Takes a static site and uploads it to Amazon\'s S3.'
|
11
|
+
|
12
|
+
s.author = 'Jeremy Boles'
|
13
|
+
s.email = 'jeremy@jeremyboles.com'
|
14
|
+
s.homepage = 'https://github.com/jeremyboles/ale'
|
15
|
+
|
16
|
+
s.bindir = 'bin'
|
17
|
+
s.executables = ['ale']
|
18
|
+
s.files = `git ls-files`.split("\n")
|
19
|
+
s.require_paths = ['lib']
|
20
|
+
|
21
|
+
s.add_dependency('aws-sdk', '~> 1.1.3')
|
22
|
+
s.add_dependency('thor', '~> 0.14.6')
|
23
|
+
end
|
data/bin/ale
ADDED
data/lib/ale.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Ale
|
2
|
+
autoload :CLI, 'ale/cli'
|
3
|
+
autoload :Config, 'ale/config'
|
4
|
+
autoload :DSL, 'ale/dsl'
|
5
|
+
autoload :Site, 'ale/site'
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def config!
|
9
|
+
AWS.config({
|
10
|
+
:access_key_id => Config.amazon_access_key_id,
|
11
|
+
:secret_access_key => Config.amazon_secret_access_key
|
12
|
+
})
|
13
|
+
end
|
14
|
+
|
15
|
+
def directory
|
16
|
+
File.expand_path('./')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/ale/cli.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'aws-sdk'
|
2
|
+
require 'thor'
|
3
|
+
|
4
|
+
module Ale
|
5
|
+
class CLI < Thor
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
default_task :upload
|
9
|
+
|
10
|
+
desc 'build', 'Builds the site'
|
11
|
+
def build
|
12
|
+
say("Detect: #{Site.detect}")
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'upload', 'Uploads the site to S3'
|
16
|
+
def upload
|
17
|
+
if File.exists?(upfile)
|
18
|
+
DSL.evaluate(upfile)
|
19
|
+
Ale.config!
|
20
|
+
bucket = AWS::S3.new.buckets['www.bloomapp.net']
|
21
|
+
|
22
|
+
say("Starting upload to #{bucket.name}")
|
23
|
+
directory = File.expand_path(Ale.directory)
|
24
|
+
Dir["#{directory}/**/*"].each do |file|
|
25
|
+
unless File.directory?(file)
|
26
|
+
key = file.gsub('./', '')
|
27
|
+
say("Uploading #{key}")
|
28
|
+
object = bucket.objects[key]
|
29
|
+
object.write(:file => file, :acl => :public_read)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
say('Your upload is complete!', :green)
|
33
|
+
|
34
|
+
if bucket.exists?
|
35
|
+
else
|
36
|
+
say("Bucket named #{bucket.name} does not exist", :red)
|
37
|
+
end
|
38
|
+
else
|
39
|
+
say('Could not locate Upfile', :red)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def upfile
|
46
|
+
upfile = File.join(Ale.directory, 'Upfile')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/ale/config.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
module Ale
|
2
|
+
module Config
|
3
|
+
class << self
|
4
|
+
attr_accessor :bucket
|
5
|
+
attr_writer :amazon_access_key_id, :amazon_secret_access_key
|
6
|
+
|
7
|
+
def amazon_access_key_id
|
8
|
+
@amazon_access_key_id || ENV['AMAZON_ACCESS_KEY_ID']
|
9
|
+
end
|
10
|
+
|
11
|
+
def amazon_secret_access_key
|
12
|
+
@amazon_secret_access_key || ENV['AMAZON_SECRET_ACCESS_KEY']
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/ale/dsl.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
module Ale
|
2
|
+
class DSL
|
3
|
+
def self.evaluate(upfile)
|
4
|
+
builder = new
|
5
|
+
contents = File.open(upfile, 'rb') { |f| f.read }
|
6
|
+
builder.instance_eval(contents, upfile.to_s, 1)
|
7
|
+
end
|
8
|
+
|
9
|
+
def access_key(key)
|
10
|
+
Ale::Config.amazon_access_key_id = key
|
11
|
+
end
|
12
|
+
|
13
|
+
def bucket(bucket)
|
14
|
+
Ale::Config.bucket = bucket
|
15
|
+
end
|
16
|
+
|
17
|
+
def ignore(file)
|
18
|
+
puts file
|
19
|
+
end
|
20
|
+
|
21
|
+
def public(file)
|
22
|
+
puts file
|
23
|
+
end
|
24
|
+
|
25
|
+
def private(file)
|
26
|
+
puts file
|
27
|
+
end
|
28
|
+
|
29
|
+
def secret_key(key)
|
30
|
+
Ale::Config.amazon_secret_access_key = key
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/ale/site.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
module Ale
|
2
|
+
module Site
|
3
|
+
class << self
|
4
|
+
def detect
|
5
|
+
return Jekyll if jekyll?
|
6
|
+
return Middleman if middleman?
|
7
|
+
return Base
|
8
|
+
end
|
9
|
+
|
10
|
+
def jekyll?
|
11
|
+
File.exists?(File.join(Up.directory, '_config.yml'))
|
12
|
+
end
|
13
|
+
|
14
|
+
def middleman?
|
15
|
+
File.exists?(File.join(Up.directory, 'config.rb')) && File.directory?(File.join(Up.directory, 'source'))
|
16
|
+
end
|
17
|
+
|
18
|
+
class Base
|
19
|
+
attr_accessor :ignored_files, :private_files, :public_files
|
20
|
+
|
21
|
+
def initialize
|
22
|
+
ignored_files = []
|
23
|
+
private_files = ['Upfile']
|
24
|
+
public_files = []
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class Middleman < Base
|
29
|
+
end
|
30
|
+
|
31
|
+
class Jekyll < Base
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/ale/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ale
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jeremy Boles
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-09-08 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: aws-sdk
|
16
|
+
requirement: &70257830900780 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.1.3
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70257830900780
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: thor
|
27
|
+
requirement: &70257830899900 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.14.6
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70257830899900
|
36
|
+
description: Takes a static site and uploads it to Amazon's S3.
|
37
|
+
email: jeremy@jeremyboles.com
|
38
|
+
executables:
|
39
|
+
- ale
|
40
|
+
extensions: []
|
41
|
+
extra_rdoc_files: []
|
42
|
+
files:
|
43
|
+
- .gitignore
|
44
|
+
- Gemfile
|
45
|
+
- ale.gemspec
|
46
|
+
- bin/ale
|
47
|
+
- lib/ale.rb
|
48
|
+
- lib/ale/cli.rb
|
49
|
+
- lib/ale/config.rb
|
50
|
+
- lib/ale/dsl.rb
|
51
|
+
- lib/ale/site.rb
|
52
|
+
- lib/ale/version.rb
|
53
|
+
homepage: https://github.com/jeremyboles/ale
|
54
|
+
licenses: []
|
55
|
+
post_install_message:
|
56
|
+
rdoc_options: []
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
65
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
requirements: []
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 1.8.10
|
74
|
+
signing_key:
|
75
|
+
specification_version: 3
|
76
|
+
summary: Uploads websites to S3.
|
77
|
+
test_files: []
|