pre-commit 0.1.19 → 0.2.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.
data/bin/pre-commit CHANGED
@@ -1,18 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- template = <<EOS
4
- #!/usr/bin/env ruby
5
-
6
- require 'rubygems'
7
- require 'pre-commit'
8
-
9
- exit_status = PreCommit.checks_to_run.inject(true) do |acc, cmd|
10
- acc = cmd.call && acc
11
- end
12
-
13
- exit(exit_status ? 0 : 1)
3
+ require 'pre-commit/cli'
14
4
 
15
- EOS
5
+ PRE_COMMIT_HOOK_PATH = '.git/hooks/pre-commit'
16
6
 
17
7
  if ARGV[0] != "install"
18
8
  puts "Usage: pre-commit install"
@@ -24,17 +14,8 @@ if !File.exists?(".git")
24
14
  exit(1)
25
15
  end
26
16
 
27
- if File.exists?(".git/hooks/pre-commit")
28
- puts "Not overwriting existing hook: .git/hooks/pre-commit"
29
- exit(1)
30
- end
31
-
32
- File.open(".git/hooks/pre-commit","w") {|f|
33
- f.write(template)
34
- }
35
-
36
- require 'fileutils'
37
-
38
- FileUtils.chmod(0755, ".git/hooks/pre-commit")
17
+ cli = PreCommit::Cli.new
18
+ cli.install
39
19
 
40
- puts "Installed hook: .git/hooks/pre-commit"
20
+ puts "Installed hook: #{PRE_COMMIT_HOOK_PATH}"
21
+ puts
@@ -61,4 +61,12 @@ class PreCommit
61
61
  Checks.values_at(*checks_to_run)
62
62
  end.compact
63
63
  end
64
+
65
+ def self.run
66
+ exit_status = self.checks_to_run.inject(true) do |acc, cmd|
67
+ acc = cmd.call && acc
68
+ end
69
+
70
+ exit(exit_status ? 0 : 1)
71
+ end
64
72
  end
@@ -0,0 +1,42 @@
1
+ require 'fileutils'
2
+ require 'pre-commit/base'
3
+
4
+ class PreCommit
5
+ class Cli
6
+
7
+ PRE_COMMIT_HOOK_PATH = '.git/hooks/pre-commit'
8
+
9
+ def answered_yes?(answer)
10
+ answer =~ /y\n/i || answer == "\n"
11
+ end
12
+
13
+ def install
14
+ if File.exists?(PRE_COMMIT_HOOK_PATH)
15
+ ask_to_overwrite
16
+ end
17
+
18
+ install_pre_commit_hook
19
+ end
20
+
21
+ def ask_to_overwrite
22
+ puts "pre-commit: WARNING There is already a pre-commit hook installed in this git repo."
23
+ print "Would you like to overwrite it? [Yn] "
24
+ answer = $stdin.gets
25
+
26
+ if answered_yes?(answer)
27
+ FileUtils.rm(PRE_COMMIT_HOOK_PATH)
28
+ else
29
+ puts "Not overwriting existing hook: #{PRE_COMMIT_HOOK_PATH}"
30
+ puts
31
+ exit(1)
32
+ end
33
+ end
34
+
35
+ def install_pre_commit_hook
36
+ hook = File.join(PreCommit.root, 'templates', 'pre-commit-hook')
37
+ FileUtils.cp(hook, PRE_COMMIT_HOOK_PATH)
38
+ FileUtils.chmod(0755, PRE_COMMIT_HOOK_PATH)
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ if system("which rvm > /dev/null")
4
+ cmd = "rvm default do ruby -rrubygems "
5
+ else
6
+ cmd = "ruby -rrubygems "
7
+ end
8
+
9
+ cmd << %Q{-e "require 'pre-commit'; PreCommit.run"}
10
+
11
+ exit(system(cmd) ? 0 : 1)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pre-commit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.19
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-21 00:00:00.000000000 Z
12
+ date: 2012-07-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: execjs
@@ -48,6 +48,7 @@ files:
48
48
  - lib/pre-commit/checks/php_check.rb
49
49
  - lib/pre-commit/checks/tabs.rb
50
50
  - lib/pre-commit/checks.rb
51
+ - lib/pre-commit/cli.rb
51
52
  - lib/pre-commit/runner.rb
52
53
  - lib/pre-commit/utils.rb
53
54
  - lib/pre-commit.rb
@@ -58,6 +59,7 @@ files:
58
59
  - lib/support/jslint/lint.js
59
60
  - lib/support/whitespace/whitespace
60
61
  - lib/support/whitespace/whitespace_checker.rb
62
+ - templates/pre-commit-hook
61
63
  - README.md
62
64
  - !binary |-
63
65
  YmluL3ByZS1jb21taXQ=
@@ -83,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
85
  version: '0'
84
86
  requirements: []
85
87
  rubyforge_project:
86
- rubygems_version: 1.8.21
88
+ rubygems_version: 1.8.24
87
89
  signing_key:
88
90
  specification_version: 3
89
91
  summary: A slightly better git pre-commit hook