git_undo 0.1.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1853641d4fa2c27843cd182b10778d67b8858275
4
+ data.tar.gz: d653f3b5f5e7be2bc42cad3f8aa4d44772202163
5
+ SHA512:
6
+ metadata.gz: 66aca25a347e2c1e0fbc5d3a2fc16af236679780c3dab97dfeb29ee8637ad0d6f52c5a1cce5d1b4fbc9369bd73cd2ea340dde8e9c03abbb15c0bf08c3feffbcf
7
+ data.tar.gz: 309266bd6ddc9b052b5dd4bd0d51b7e8debc3f14a9fbb04661d3c2b0abfbf0d2c41137a857f5a395153d572ba7ef480e5451d1e80c302daa87956de624871dbd
data/bin/gitundo ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../config/environment.rb'
4
+
5
+ if history_file = ENV['HISTFILE']
6
+ GitManager.new(history_file).run
7
+ else
8
+ GitManager.setup
9
+ end
@@ -0,0 +1 @@
1
+ require_relative '../lib/git_undo/git_manager.rb'
@@ -0,0 +1,72 @@
1
+ class GitManager
2
+ def initialize(history_file)
3
+ @history_file = history_file
4
+ @command_list = []
5
+ end
6
+
7
+ def get_commands
8
+ File.open(@history_file) do |file|
9
+ file.each do |line|
10
+ # find last git command
11
+ if /\Agit / =~ line
12
+ @command_list << line.chomp
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ def last_command
19
+ @command_list.last
20
+ end
21
+
22
+ def run
23
+ get_commands
24
+ puts "Last git command was: `#{last_command}`"
25
+ end
26
+
27
+ def self.setup
28
+ puts "It looks like you haven't run the initial setup. Would you like to do so now (y/n)?"
29
+ if gets.chomp.downcase == 'y'
30
+ puts "This will involve appending an alias to your .bash_profile. Okay to proceed?"
31
+ if gets.chomp.downcase == 'y'
32
+ puts "Thanks!"
33
+ update_bash_profile
34
+ else
35
+ puts "Goodbye!"
36
+ end
37
+ else
38
+ puts "Goodbye!"
39
+ end
40
+ end
41
+
42
+ def self.update_bash_profile
43
+ alias_exists = false
44
+ # last_line_alias = false
45
+ # position = 0
46
+ # line_count = 0
47
+ # index = 0
48
+ # max_line_count = 0
49
+ file = File.open(File.expand_path('~' + '/.bash_profile'),'r+')
50
+
51
+ file.readlines.each do |line|
52
+ # line_count += 1
53
+ if /\A[\s]*alias/.match line
54
+ if /\A[\s]*alias gitundo="HISTFILE=\$HISTFILE gitundo"\n\z/.match line
55
+ alias_exists = true
56
+ end
57
+ # max_line_count = line_count
58
+ # elsif last_line_alias
59
+ # position = file.pos
60
+ # last_line_alias = false
61
+ end
62
+ end
63
+ unless alias_exists
64
+ file.write("# Git Undo\n")
65
+ file.write("alias gitundo=\"HISTFILE=$HISTFILE gitundo\"\n")
66
+ puts "Please run `source ~/.bash_profile && cd .` to reload configuration"
67
+ end
68
+ file.close
69
+ # puts max_line_count + 1
70
+ # puts position
71
+ end
72
+ end
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: git_undo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Randall Reed, Jr.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-05-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: Command line utility to read from bash history, find last git command,
56
+ and output command to undo that operation.
57
+ email:
58
+ - randallreedjr@gmail.com
59
+ executables:
60
+ - gitundo
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - bin/gitundo
65
+ - config/environment.rb
66
+ - lib/git_undo/git_manager.rb
67
+ homepage: https://github.com/randallreedjr/git_undo
68
+ licenses:
69
+ - MIT
70
+ metadata: {}
71
+ post_install_message:
72
+ rdoc_options: []
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ requirements: []
86
+ rubyforge_project:
87
+ rubygems_version: 2.5.1
88
+ signing_key:
89
+ specification_version: 4
90
+ summary: Undo last git command
91
+ test_files: []