legit 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/legit +6 -0
- data/legit.gemspec +2 -1
- data/lib/legit/version.rb +1 -1
- data/lib/legit.rb +44 -0
- data/lib/legit_helper.rb +7 -0
- metadata +24 -11
- data/bin/git-catch-todos +0 -14
- data/bin/git-delete +0 -19
- data/bin/git-push-upstream +0 -19
data/bin/legit
ADDED
data/legit.gemspec
CHANGED
@@ -3,7 +3,7 @@ require File.expand_path("../lib/legit/version", __FILE__)
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.authors = ["Dillon Kearns"]
|
5
5
|
gem.email = ["dillon@dillonkearns.com"]
|
6
|
-
gem.description = "A collection of scripts for common git tasks
|
6
|
+
gem.description = "A collection of scripts for common git tasks to simplify and improve workflow."
|
7
7
|
gem.summary = gem.description
|
8
8
|
gem.homepage = "https://github.com/dillonkearns/legit"
|
9
9
|
|
@@ -18,4 +18,5 @@ Gem::Specification.new do |gem|
|
|
18
18
|
|
19
19
|
gem.add_development_dependency "rake", "~> 10.0.3"
|
20
20
|
gem.add_runtime_dependency "colorize", "~> 0.5.8"
|
21
|
+
gem.add_runtime_dependency "thor", "~> 0.16.0"
|
21
22
|
end
|
data/lib/legit/version.rb
CHANGED
data/lib/legit.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'legit_helper'
|
2
|
+
require 'thor'
|
3
|
+
|
4
|
+
class Legit < Thor
|
5
|
+
desc "log", "print a graph-like log"
|
6
|
+
def log
|
7
|
+
system("git log --pretty=format:'%C(yellow)%h%Creset%C(bold cyan)%d%Creset %s %Cgreen(%cr)%Creset %C(bold magenta) <%an>%Creset' --graph --abbrev-commit --date=relative")
|
8
|
+
end
|
9
|
+
|
10
|
+
desc "catch-todos [TODO_FORMAT]", "Abort commit if any todos in TODO_FORMAT found"
|
11
|
+
method_options %w[warn -w] => :boolean, :desc => 'Warn and prompt the user to choose whether to abort the commit'
|
12
|
+
def catch_todos(todo_format = "TODO")
|
13
|
+
system("git diff --staged | grep '^+' | grep #{todo_format}")
|
14
|
+
|
15
|
+
if $?.success?
|
16
|
+
if options[:warn]
|
17
|
+
exit 1 unless positive_response?("[pre-commit hook] Found staged `#{todo_format}`s. Do you still want to continue?", :warning)
|
18
|
+
else
|
19
|
+
show("[pre-commit hook] Aborting commit... found staged `#{todo_format}`s.", :warning)
|
20
|
+
exit 1
|
21
|
+
end
|
22
|
+
else
|
23
|
+
show("Success: No #{todo_format}s staged.", :success)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "delete BRANCH", "Delete BRANCH both locally and remotely"
|
28
|
+
def delete(branch_name)
|
29
|
+
system("git branch -d #{branch_name}")
|
30
|
+
|
31
|
+
if $?.success?
|
32
|
+
delete_remote_branch(branch_name)
|
33
|
+
else
|
34
|
+
show("Force delete branch #{branch_name}? (y/n)", :warning)
|
35
|
+
if STDIN.gets.chomp =~ /^y/
|
36
|
+
system("git branch -D #{branch_name}")
|
37
|
+
delete_remote_branch(branch_name)
|
38
|
+
else
|
39
|
+
puts "Abort. #{branch_name} not deleted"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
data/lib/legit_helper.rb
CHANGED
@@ -15,6 +15,8 @@ def show(message, type = :success)
|
|
15
15
|
:green
|
16
16
|
when :warning
|
17
17
|
:red
|
18
|
+
when :normal
|
19
|
+
:white
|
18
20
|
else
|
19
21
|
raise 'Unknown prompt type'
|
20
22
|
end
|
@@ -22,3 +24,8 @@ def show(message, type = :success)
|
|
22
24
|
puts message.send(color)
|
23
25
|
end
|
24
26
|
|
27
|
+
|
28
|
+
def positive_response?(message, type = :normal)
|
29
|
+
show("#{message} (y/n)", type)
|
30
|
+
STDIN.gets.chomp =~ /y/
|
31
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: legit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dillon Kearns
|
@@ -50,13 +50,27 @@ dependencies:
|
|
50
50
|
prerelease: false
|
51
51
|
name: colorize
|
52
52
|
type: :runtime
|
53
|
-
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 95
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
- 16
|
63
|
+
- 0
|
64
|
+
version: 0.16.0
|
65
|
+
requirement: *id003
|
66
|
+
prerelease: false
|
67
|
+
name: thor
|
68
|
+
type: :runtime
|
69
|
+
description: A collection of scripts for common git tasks to simplify and improve workflow.
|
54
70
|
email:
|
55
71
|
- dillon@dillonkearns.com
|
56
72
|
executables:
|
57
|
-
-
|
58
|
-
- git-delete
|
59
|
-
- git-push-upstream
|
73
|
+
- legit
|
60
74
|
extensions: []
|
61
75
|
|
62
76
|
extra_rdoc_files: []
|
@@ -67,10 +81,9 @@ files:
|
|
67
81
|
- LICENSE
|
68
82
|
- README.md
|
69
83
|
- Rakefile
|
70
|
-
- bin/
|
71
|
-
- bin/git-delete
|
72
|
-
- bin/git-push-upstream
|
84
|
+
- bin/legit
|
73
85
|
- legit.gemspec
|
86
|
+
- lib/legit.rb
|
74
87
|
- lib/legit/version.rb
|
75
88
|
- lib/legit_helper.rb
|
76
89
|
has_rdoc: true
|
@@ -108,6 +121,6 @@ rubyforge_project:
|
|
108
121
|
rubygems_version: 1.5.3
|
109
122
|
signing_key:
|
110
123
|
specification_version: 3
|
111
|
-
summary: A collection of scripts for common git tasks
|
124
|
+
summary: A collection of scripts for common git tasks to simplify and improve workflow.
|
112
125
|
test_files: []
|
113
126
|
|
data/bin/git-catch-todos
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#! /usr/bin/ruby
|
2
|
-
|
3
|
-
require 'lib/legit_helper'
|
4
|
-
|
5
|
-
todo_string = ARGV[0] || 'TODO'
|
6
|
-
system("git diff --staged | grep '^+' | grep #{todo_string}")
|
7
|
-
|
8
|
-
if $?.success?
|
9
|
-
show("[pre-commit hook] Aborting commit... found staged `#{todo_string}`s.", :warning)
|
10
|
-
exit 1
|
11
|
-
else
|
12
|
-
show("Success: No `#{todo_string}`s staged.", :success)
|
13
|
-
exit 0
|
14
|
-
end
|
data/bin/git-delete
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
#! /usr/bin/ruby
|
2
|
-
|
3
|
-
require 'lib/legit_helper'
|
4
|
-
|
5
|
-
branch_name = ARGV[0] or raise 'Must pass in branch name'
|
6
|
-
|
7
|
-
system("git branch -d #{branch_name}")
|
8
|
-
|
9
|
-
if $?.success?
|
10
|
-
delete_remote_branch(branch_name)
|
11
|
-
else
|
12
|
-
show("Force delete branch #{branch_name}? (y/n)", :warning)
|
13
|
-
if STDIN.gets.chomp =~ /^y/
|
14
|
-
system("git branch -D #{branch_name}")
|
15
|
-
delete_remote_branch(branch_name)
|
16
|
-
else
|
17
|
-
puts "Abort. #{branch_name} not deleted"
|
18
|
-
end
|
19
|
-
end
|
data/bin/git-push-upstream
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
#! /usr/bin/ruby
|
2
|
-
|
3
|
-
require 'lib/legit_helper'
|
4
|
-
|
5
|
-
branch_name = ARGV[0] or raise 'Must pass in branch name'
|
6
|
-
|
7
|
-
system("git branch -d #{branch_name}")
|
8
|
-
|
9
|
-
if $?.success?
|
10
|
-
delete_remote_branch(branch_name)
|
11
|
-
else
|
12
|
-
show("Force delete branch #{branch_name}? (y/n)", :warning)
|
13
|
-
if STDIN.gets.chomp =~ /^y/
|
14
|
-
system("git branch -D #{branch_name}")
|
15
|
-
delete_remote_branch(branch_name)
|
16
|
-
else
|
17
|
-
puts "Abort. #{branch_name} not deleted"
|
18
|
-
end
|
19
|
-
end
|