middleman-gh-pages 0.0.3 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4d105923da0ffb05b86b9d8dcf340a589b064a58
4
+ data.tar.gz: 9027c3db09483baef0fb7e51fed0b32f8369372a
5
+ SHA512:
6
+ metadata.gz: 189c7373aabe82d014f04d34893a5d6c06ab1592e9fb1d4660eea0a0aefe8f7bf12112864550f9df274dbc06fa570bbb51e5967f68c28ad828bafebe311b394b
7
+ data.tar.gz: 4850ef79050cf7ebacd98d40e413cf0a8748e615a55676d61c7ed0a77d5041b83af92420f4e72105017f69c465e4c37ba1cb22a9292ea33ae45a033108d6ed86
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Middleman Github Pages
2
2
 
3
- [Middleman](http://middlemanapp.com) makes creating static sites a joy, [Github
4
- Pages](http://pages.github.com) hosts static sites for free, Middleman Github
5
- Pages brings the two together. Middleman Github Pages is just a few rake tasks
3
+ [Middleman](http://middlemanapp.com) makes creating static sites a joy, [Github
4
+ Pages](http://pages.github.com) hosts static sites for free, Middleman Github
5
+ Pages brings the two together. Middleman Github Pages is just a few rake tasks
6
6
  that automate the process of deploying a Middleman site to Github Pages.
7
7
 
8
8
  ## Installation
@@ -28,8 +28,8 @@ rake build # Compile all files into the build directory
28
28
  rake publish # Build and publish to Github Pages
29
29
  ```
30
30
 
31
- The only assumption is that you are deploying to a gh-pages branch in the same
32
- remote as the source. `rake publish` will create this branch for you if it
31
+ The only assumption is that you are deploying to a gh-pages branch in the same
32
+ remote as the source. `rake publish` will create this branch for you if it
33
33
  doesn't exist.
34
34
 
35
35
  ## Options
@@ -44,7 +44,7 @@ bundle exec rake publish ALLOW_DIRTY=true
44
44
  You can append a custom suffix to commit messages on the build branch:
45
45
 
46
46
  ```shell
47
- bundle exec rake publish COMMIT_MESSAGE_SUFFIX="--skip-ci"
47
+ bundle exec rake publish COMMIT_MESSAGE_SUFFIX="[skip-ci]"
48
48
  ```
49
49
 
50
50
  You can change the remote that you deploy to:
@@ -53,6 +53,12 @@ You can change the remote that you deploy to:
53
53
  bundle exec rake publish REMOTE_NAME=upstream
54
54
  ```
55
55
 
56
+ If you're publishing a personal or organization page, you may want to use the branch `master` instead of `gh-pages`:
57
+
58
+ ```shell
59
+ bundle exec rake publish BRANCH_NAME=master
60
+ ```
61
+
56
62
  ## Custom Domain
57
63
 
58
64
  To set up a custom domain, you can follow the [GitHub help page](https://help.github.com/articles/setting-up-a-custom-domain-with-pages).
@@ -1,12 +1,30 @@
1
- require 'fileutils'
1
+ require "fileutils"
2
+ require "tmpdir"
2
3
 
3
4
  def remote_name
4
5
  ENV.fetch("REMOTE_NAME", "origin")
5
6
  end
6
7
 
7
- PROJECT_ROOT = `git rev-parse --show-toplevel`.strip
8
- BUILD_DIR = File.join(PROJECT_ROOT, "build")
9
- GH_PAGES_REF = File.join(BUILD_DIR, ".git/refs/remotes/#{remote_name}/gh-pages")
8
+ def branch_name
9
+ ENV.fetch("BRANCH_NAME", "gh-pages")
10
+ end
11
+
12
+ def uncommitted_changes?
13
+ `git status --porcelain`.chomp.length > 0
14
+ end
15
+
16
+ def backup_and_restore(dir, file, &block)
17
+ yield unless File.exist?(File.join(dir, file))
18
+ Dir.mktmpdir do |tmpdir|
19
+ mv File.join(dir, file), tmpdir
20
+ yield
21
+ mv File.join(tmpdir, file), dir
22
+ end
23
+ end
24
+
25
+ PROJECT_ROOT = ENV.fetch("PROJECT_ROOT", `git rev-parse --show-toplevel`.chomp)
26
+ BUILD_DIR = ENV.fetch("BUILD_DIR", File.join(PROJECT_ROOT, "build"))
27
+ GH_PAGES_REF = File.join(BUILD_DIR, ".git/refs/remotes/#{remote_name}/#{branch_name}")
10
28
 
11
29
  directory BUILD_DIR
12
30
 
@@ -14,23 +32,22 @@ file GH_PAGES_REF => BUILD_DIR do
14
32
  repo_url = nil
15
33
 
16
34
  cd PROJECT_ROOT do
17
- repo_url = `git config --get remote.#{remote_name}.url`.strip
35
+ repo_url = `git config --get remote.#{remote_name}.url`.chomp
18
36
  end
19
37
 
20
38
  cd BUILD_DIR do
21
39
  sh "git init"
22
40
  sh "git remote add #{remote_name} #{repo_url}"
23
41
  sh "git fetch #{remote_name}"
24
- sh "git checkout master"
25
42
 
26
- if `git branch -r` =~ /gh-pages/
27
- sh "git checkout gh-pages"
43
+ if `git branch -r` =~ /#{branch_name}/
44
+ sh "git checkout #{branch_name}"
28
45
  else
29
- sh "git checkout --orphan gh-pages"
30
- sh "touch index.html"
46
+ sh "git checkout --orphan #{branch_name}"
47
+ FileUtils.touch("index.html")
31
48
  sh "git add ."
32
- sh "git commit -m 'initial gh-pages commit'"
33
- sh "git push #{remote_name} gh-pages"
49
+ sh "git commit -m \"initial gh-pages commit\""
50
+ sh "git push #{remote_name} #{branch_name}"
34
51
  end
35
52
  end
36
53
  end
@@ -42,22 +59,24 @@ task :prepare_git_remote_in_build_dir => GH_PAGES_REF
42
59
  task :sync do
43
60
  cd BUILD_DIR do
44
61
  sh "git fetch #{remote_name}"
45
- sh "git reset --hard #{remote_name}/gh-pages"
62
+ sh "git reset --hard #{remote_name}/#{branch_name}"
46
63
  end
47
64
  end
48
65
 
49
66
  # Prevent accidental publishing before committing changes
50
67
  task :not_dirty do
51
- puts "***#{ENV['ALLOW_DIRTY']}***"
52
- unless ENV['ALLOW_DIRTY']
53
- fail "Directory not clean" if /nothing to commit/ !~ `git status`
68
+ if uncommitted_changes?
69
+ puts "*** WARNING: You currently have uncommitted changes. ***"
70
+ fail "Build aborted, because project directory is not clean." unless ENV["ALLOW_DIRTY"]
54
71
  end
55
72
  end
56
73
 
57
74
  desc "Compile all files into the build directory"
58
75
  task :build do
59
- cd PROJECT_ROOT do
60
- sh "bundle exec middleman build --clean"
76
+ backup_and_restore(BUILD_DIR, ".git") do
77
+ cd PROJECT_ROOT do
78
+ sh "bundle exec middleman build --clean"
79
+ end
61
80
  end
62
81
  end
63
82
 
@@ -67,17 +86,17 @@ task :publish => [:not_dirty, :prepare_git_remote_in_build_dir, :sync, :build] d
67
86
  suffix = ENV["COMMIT_MESSAGE_SUFFIX"]
68
87
 
69
88
  cd PROJECT_ROOT do
70
- head = `git log --pretty="%h" -n1`.strip
89
+ head = `git log --pretty="%h" -n1`.chomp
71
90
  message = ["Site updated to #{head}", suffix].compact.join("\n\n")
72
91
  end
73
92
 
74
93
  cd BUILD_DIR do
75
- sh 'git add --all'
76
- if /nothing to commit/ =~ `git status`
77
- puts "No changes to commit."
78
- else
94
+ sh "git add --all"
95
+ if uncommitted_changes?
79
96
  sh "git commit -m \"#{message}\""
97
+ else
98
+ puts "No changes to commit."
80
99
  end
81
- sh "git push #{remote_name} gh-pages"
100
+ sh "git push #{remote_name} #{branch_name}"
82
101
  end
83
102
  end
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module GithubPages
3
- VERSION = "0.0.3"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,30 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-gh-pages
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Adam McCrea
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-08 00:00:00.000000000 Z
11
+ date: 2016-02-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>'
17
+ - - ">"
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.9.3
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>'
24
+ - - ">"
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.9.3
30
27
  description: Easy deployment of Middleman sites to Github Pages
@@ -34,7 +31,7 @@ executables: []
34
31
  extensions: []
35
32
  extra_rdoc_files: []
36
33
  files:
37
- - .gitignore
34
+ - ".gitignore"
38
35
  - Gemfile
39
36
  - LICENSE.txt
40
37
  - README.md
@@ -45,27 +42,25 @@ files:
45
42
  - middleman-gh-pages.gemspec
46
43
  homepage: http://github.com/newcontext/middleman-gh-pages
47
44
  licenses: []
45
+ metadata: {}
48
46
  post_install_message:
49
47
  rdoc_options: []
50
48
  require_paths:
51
49
  - lib
52
50
  required_ruby_version: !ruby/object:Gem::Requirement
53
- none: false
54
51
  requirements:
55
- - - ! '>='
52
+ - - ">="
56
53
  - !ruby/object:Gem::Version
57
54
  version: '0'
58
55
  required_rubygems_version: !ruby/object:Gem::Requirement
59
- none: false
60
56
  requirements:
61
- - - ! '>='
57
+ - - ">="
62
58
  - !ruby/object:Gem::Version
63
59
  version: '0'
64
60
  requirements: []
65
61
  rubyforge_project:
66
- rubygems_version: 1.8.23
62
+ rubygems_version: 2.5.2
67
63
  signing_key:
68
- specification_version: 3
64
+ specification_version: 4
69
65
  summary: Easy deployment of Middleman sites to Github Pages
70
66
  test_files: []
71
- has_rdoc: