static_deploy 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a2dd72b36f03bb7f16c9757e393c1904efc9f332
4
+ data.tar.gz: 18bb950f77cb9cd97dc2df285494f2ac4d335c75
5
+ SHA512:
6
+ metadata.gz: c168ca19df8b9be6d168c6ddb901aaa29095ce866b92c5a4cae5c68de4fe7156e81f5d32a823744d202c9e5e92c9a5a70251f88987e7a6f572871a0c708ae050
7
+ data.tar.gz: b69a05c542d0aa9f62f1f664ba0df2e5eb010812933d873f6265dfcdc96e9d0cbe304f742deb5fabba79bf913d5410a78f58a448d5bf9a7a5ce8f5d84ab8e46f
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Piotr Murach
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # StaticDeploy
2
+
3
+ Provides rake tasks for publishing your static website to GitHub pages of any remote repository.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'static_deploy'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install static_deploy
18
+
19
+ ## Usage
20
+
21
+ In your Rakefile add the following
22
+
23
+ ```ruby
24
+ require 'static_deploy'
25
+
26
+ ENV['GENERATOR'] = 'jekyll' # => static website generator executable
27
+ ENV['COMMAND'] = 'build' # => defaults to 'build'
28
+ ```
29
+
30
+ Then to publish to remote branch do
31
+
32
+ ```ruby
33
+ bundle exec rake publish["username/repository"]
34
+ ```
35
+
36
+ ## Contributing
37
+
38
+ 1. Fork it
39
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
40
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
41
+ 4. Push to the branch (`git push origin my-new-feature`)
42
+ 5. Create new Pull Request
43
+
44
+ ## Copyright
45
+
46
+ Copyright (c) 2013 Piotr Murach. See LICENSE for further details.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,89 @@
1
+ require 'fileutils'
2
+ require 'tty'
3
+
4
+ BUILD_DIR = "_site"
5
+ ROOT = `git rev-parse --show-toplevel`.strip
6
+ DEFAULT_URL = `git config --get remote.origin.url`.strip
7
+ REGEX = /^.+:(.*)\/(.*).git$/
8
+
9
+ def shell
10
+ @shell ||= TTY::Shell.new
11
+ end
12
+
13
+ def default_user
14
+ @default_user ||= DEFAULT_URL[REGEX, 1]
15
+ end
16
+
17
+ def default_repo
18
+ @default_repo ||= DEFAULT_URL[REGEX, 2]
19
+ end
20
+
21
+ def generator
22
+ @generator = ENV['GENERATOR'] || 'jekyll'
23
+ end
24
+
25
+ def command
26
+ @command = ENV['COMMAND'] || 'build'
27
+ end
28
+
29
+ namespace :site do
30
+ desc "Prepare remote branch"
31
+ task :prepare do |t, args|
32
+ shell.say "=> Preparing...", color: :green
33
+
34
+ mkdir_p BUILD_DIR
35
+
36
+ cd BUILD_DIR do
37
+ unless File.exists?(".git")
38
+ sh "git init"
39
+ sh "git remote add github git@github.com:#{args.repo}.git"
40
+ sh "git fetch github"
41
+ sh "git checkout -b gh-pages --track github/gh-pages"
42
+ end
43
+ end
44
+ end
45
+
46
+ desc "Fetch upstream changes on tty gh pages"
47
+ task :sync do
48
+ shell.say "=> Synching...", color: :green
49
+
50
+ cd BUILD_DIR do
51
+ sh "git fetch github"
52
+ sh "git reset --hard github/gh-pages"
53
+ # Remove old files
54
+ sh "rm `git ls-files`"
55
+ end
56
+ end
57
+
58
+ desc "Compile files into #{BUILD_DIR} directory"
59
+ task :build do
60
+ shell.say "=> Building...", color: :green
61
+
62
+ cd ROOT do
63
+ sh "bundle exec #{generator} #{command}"
64
+ end
65
+ end
66
+
67
+ desc 'Publish the website to GitHub pages'
68
+ task :publish, [:repo] => [:prepare, :sync, :build] do |t, args|
69
+ args.with_defaults(:repo => "#{default_user}/#{default_repo}")
70
+
71
+ message = shell.ask "Provide a deployment message for #{args.repo}: ", color: :green do
72
+ argument :required
73
+ end.read_string
74
+
75
+ shell.say "=> Deploying to #{args.repo} GitHub Pages...", color: :green
76
+
77
+ cd BUILD_DIR do
78
+ sh 'git add --all'
79
+ if /nothing to commit/ =~ `git status`
80
+ shell.say "No changes to commit.", color: :green
81
+ else
82
+ sh "git commit -m '#{message.gsub("'", "\\'")}'"
83
+ end
84
+ sh "git push github gh-pages"
85
+ end
86
+
87
+ shell.say "Site build. OK", color: :green
88
+ end
89
+ end
@@ -0,0 +1,3 @@
1
+ module StaticDeploy
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,5 @@
1
+ require "static_deploy/version"
2
+
3
+ if defined?(Rake)
4
+ Rake.load_rakefile(File.expand_path('../static_deploy/publish_task.rb', __FILE__))
5
+ end
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'static_deploy'
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe StaticDeploy do
4
+ it 'should have a version number' do
5
+ StaticDeploy::VERSION.should_not be_nil
6
+ end
7
+
8
+ it 'should do something useful' do
9
+ false.should be_true
10
+ end
11
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'static_deploy/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "static_deploy"
8
+ spec.version = StaticDeploy::VERSION
9
+ spec.authors = ["Piotr Murach"]
10
+ spec.email = ["pmurach@gmail.com"]
11
+ spec.description = %q{Automated deployment to GitHub pages}
12
+ spec.summary = %q{Provides rake tasks for publishing your static site to github pages to any remote repository}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "tty"
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "rspec"
26
+ end
metadata ADDED
@@ -0,0 +1,116 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: static_deploy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Piotr Murach
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-05-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: tty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Automated deployment to GitHub pages
70
+ email:
71
+ - pmurach@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .rspec
78
+ - .travis.yml
79
+ - Gemfile
80
+ - LICENSE.txt
81
+ - README.md
82
+ - Rakefile
83
+ - lib/static_deploy.rb
84
+ - lib/static_deploy/publish_task.rb
85
+ - lib/static_deploy/version.rb
86
+ - spec/spec_helper.rb
87
+ - spec/static_deploy_spec.rb
88
+ - static_deploy.gemspec
89
+ homepage: ''
90
+ licenses:
91
+ - MIT
92
+ metadata: {}
93
+ post_install_message:
94
+ rdoc_options: []
95
+ require_paths:
96
+ - lib
97
+ required_ruby_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ requirements: []
108
+ rubyforge_project:
109
+ rubygems_version: 2.0.3
110
+ signing_key:
111
+ specification_version: 4
112
+ summary: Provides rake tasks for publishing your static site to github pages to any
113
+ remote repository
114
+ test_files:
115
+ - spec/spec_helper.rb
116
+ - spec/static_deploy_spec.rb